type Json = Record<string, any>;
/**
 * Is this allowlist entry one graft wrote?
 *
 * Scoped to the forms graft is actually invoked as — NOT any rule mentioning
 * "graft". A user who allowlists their own `Bash(graft-mytool:*)` keeps it; only
 * graft's own set is replaced, which is what lets a renamed entry disappear on
 * upgrade instead of accumulating beside its replacement.
 */
export declare function isGraftAllowEntry(entry: unknown): boolean;
/** Is this footer regex graft's? It points at the card tree, which is graft's alone. */
export declare function isGraftFooterRegex(re: unknown): boolean;
/** True when init should write (or refresh) Graft's Claude Code statusLine. */
export declare function statuslineWanted(opts?: {
    statusline?: boolean;
}): boolean;
export declare function mergeGraftSettings(existing: Json, opts?: {
    statusline?: boolean;
}): {
    merged: Json;
    warnings: string[];
};
export {};
//# sourceMappingURL=settings-merge.d.ts.map