export declare const EDITORS: readonly [{
    readonly id: "vscode";
    readonly label: "VSCode";
    readonly targetDir: ".vscode";
    readonly files: {
        readonly 'settings.json': Record<string, unknown>;
        readonly 'extensions.json': Record<string, unknown>;
    };
}];
export type EditorId = (typeof EDITORS)[number]['id'];
export declare function selectEditor({ interactive, editor, onCancel, }: {
    interactive: boolean;
    editor?: string | false;
    onCancel: () => void;
}): Promise<EditorId | undefined>;
export declare function detectExistingEditor(projectRoot: string): EditorId | undefined;
export interface EditorConflictInfo {
    fileName: string;
    displayPath: string;
}
/**
 * Detect editor config files that would conflict (already exist).
 * Read-only — does not write or modify any files.
 */
export declare function detectEditorConflicts({ projectRoot, editorId, }: {
    projectRoot: string;
    editorId: EditorId | undefined;
}): EditorConflictInfo[];
export declare function writeEditorConfigs({ projectRoot, editorId, interactive, conflictDecisions, silent, }: {
    projectRoot: string;
    editorId: EditorId | undefined;
    interactive: boolean;
    conflictDecisions?: Map<string, 'merge' | 'skip'>;
    silent?: boolean;
}): Promise<void>;
