import type { ToolResult } from '../../../types.js';
export type ReplaceEditInput = {
    path: string;
    oldText: string;
    newText: string;
    replaceAll?: boolean;
};
export type WriteEditInput = {
    path: string;
    content: string;
    createIfMissing?: boolean;
};
export type ScopedEditInput = ReplaceEditInput | WriteEditInput;
export type EditPreview = {
    path: string;
    action: 'created' | 'overwritten' | 'replaced';
    diff: string;
    truncated: boolean;
};
type ScopedEditOptions = {
    toolName: string;
    rootPath: string;
    rootLabel: string;
    subjectLabel: string;
    creationHint: string;
    enforceRoot?: boolean;
};
export declare function isScopedEditInput(raw: unknown): raw is ScopedEditInput;
export declare function executeScopedEdit(raw: unknown, options: ScopedEditOptions): Promise<ToolResult>;
export declare function previewScopedEdit(raw: unknown, options: Omit<ScopedEditOptions, 'creationHint'>): Promise<EditPreview | undefined>;
export {};
//# sourceMappingURL=file-edit-core.d.ts.map