import { type KeyMutationAction, type KeyMutationPlanItem } from './dotenv/edit.js';
export type DotenvIssue = {
    line: number;
    column: number;
    message: string;
};
export type CopyConflictPolicy = 'error' | 'skip' | 'overwrite';
export type CopyPlanItem = {
    fromKey: string;
    toKey: string;
    action: 'copy' | 'skip' | 'overwrite' | 'missing_source' | 'conflict';
    fromLine?: number;
    toLine?: number;
};
export type FormatMode = 'sections' | 'global';
export type FormatSort = 'alpha' | 'none';
export type AnnotatePlan = {
    key: string;
    action: 'inserted' | 'updated' | 'not_found' | 'ambiguous';
    keyLines?: number[];
    line?: number;
};
export type CopyEnvFilesResult = {
    from: string;
    to: string;
    onConflict: CopyConflictPolicy;
    willWrite: boolean;
    wrote: boolean;
    hasChanges: boolean;
    issues: DotenvIssue[];
    plan: CopyPlanItem[];
};
export declare function copyEnvFileKeys(options: {
    from: string;
    to: string;
    keys?: readonly string[];
    include?: RegExp;
    exclude?: RegExp;
    rename?: string;
    onConflict?: CopyConflictPolicy;
    write?: boolean;
}): Promise<CopyEnvFilesResult>;
export type FormatEnvFileResult = {
    file: string;
    mode: FormatMode;
    sort: FormatSort;
    willWrite: boolean;
    wrote: boolean;
    hasChanges: boolean;
    issues: DotenvIssue[];
};
export declare function formatEnvFile(options: {
    file: string;
    mode?: FormatMode;
    sort?: FormatSort;
    write?: boolean;
}): Promise<FormatEnvFileResult>;
export type AnnotateEnvFileResult = {
    file: string;
    key: string;
    willWrite: boolean;
    wrote: boolean;
    hasChanges: boolean;
    issues: DotenvIssue[];
    plan: AnnotatePlan;
};
export declare function annotateEnvFile(options: {
    file: string;
    key: string;
    comment: string;
    line?: number;
    write?: boolean;
}): Promise<AnnotateEnvFileResult>;
export type ValidateEnvFileResult = {
    file: string;
    ok: boolean;
    issues: DotenvIssue[];
};
export declare function validateEnvFile(file: string): Promise<ValidateEnvFileResult>;
export type { KeyMutationAction, KeyMutationPlanItem };
export type AddEnvFileKeyResult = {
    file: string;
    key: string;
    willWrite: boolean;
    wrote: boolean;
    hasChanges: boolean;
    issues: DotenvIssue[];
    plan: KeyMutationPlanItem;
};
export declare function addEnvFileKey(options: {
    file: string;
    key: string;
    value: string;
    write?: boolean;
}): Promise<AddEnvFileKeyResult>;
export type SetEnvFileKeyResult = {
    file: string;
    key: string;
    willWrite: boolean;
    wrote: boolean;
    hasChanges: boolean;
    issues: DotenvIssue[];
    plan: KeyMutationPlanItem;
};
export declare function setEnvFileKey(options: {
    file: string;
    key: string;
    value: string;
    write?: boolean;
}): Promise<SetEnvFileKeyResult>;
export type UnsetEnvFileKeyResult = {
    file: string;
    key: string;
    willWrite: boolean;
    wrote: boolean;
    hasChanges: boolean;
    issues: DotenvIssue[];
    plan: KeyMutationPlanItem;
};
export declare function unsetEnvFileKey(options: {
    file: string;
    key: string;
    write?: boolean;
}): Promise<UnsetEnvFileKeyResult>;
export type DeleteEnvFileKeysResult = {
    file: string;
    keys: string[];
    willWrite: boolean;
    wrote: boolean;
    hasChanges: boolean;
    issues: DotenvIssue[];
    plan: KeyMutationPlanItem[];
};
export declare function deleteEnvFileKeys(options: {
    file: string;
    keys: readonly string[];
    write?: boolean;
}): Promise<DeleteEnvFileKeysResult>;
//# sourceMappingURL=file-ops.d.ts.map