import { type DotenvIssue } from './document.js';
export type DotenvWriteMode = 'dry-run' | 'write';
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 CopyDotenvResult = {
    output: string;
    issues: DotenvIssue[];
    plan: CopyPlanItem[];
    hasChanges: boolean;
};
export declare function copyDotenvKeys(options: {
    sourceContents: string;
    targetContents: string;
    keys?: readonly string[];
    include?: RegExp;
    exclude?: RegExp;
    rename?: string;
    onConflict: CopyConflictPolicy;
}): CopyDotenvResult;
export type AnnotatePlan = {
    key: string;
    action: 'inserted' | 'updated' | 'not_found' | 'ambiguous';
    keyLines?: number[];
    line?: number;
};
export type AnnotateDotenvResult = {
    output: string;
    issues: DotenvIssue[];
    plan: AnnotatePlan;
    hasChanges: boolean;
};
export declare function annotateDotenvKey(options: {
    contents: string;
    key: string;
    comment: string;
    line?: number;
}): AnnotateDotenvResult;
export type FormatMode = 'sections' | 'global';
export type FormatSort = 'alpha' | 'none';
export type FormatDotenvResult = {
    output: string;
    issues: DotenvIssue[];
    hasChanges: boolean;
};
export declare function formatDotenv(options: {
    contents: string;
    mode: FormatMode;
    sort: FormatSort;
}): FormatDotenvResult;
export type ValidateDotenvResult = {
    issues: DotenvIssue[];
    ok: boolean;
};
export declare function validateDotenv(contents: string): ValidateDotenvResult;
export type KeyMutationAction = 'added' | 'updated' | 'unset' | 'deleted' | 'key_exists' | 'not_found' | 'no_change';
export type KeyMutationPlanItem = {
    key: string;
    action: KeyMutationAction;
    line?: number;
};
export type AddDotenvKeyResult = {
    output: string;
    issues: DotenvIssue[];
    plan: KeyMutationPlanItem;
    hasChanges: boolean;
};
export declare function addDotenvKey(options: {
    contents: string;
    key: string;
    value: string;
}): AddDotenvKeyResult;
export type SetDotenvKeyResult = {
    output: string;
    issues: DotenvIssue[];
    plan: KeyMutationPlanItem;
    hasChanges: boolean;
};
export declare function setDotenvKey(options: {
    contents: string;
    key: string;
    value: string;
}): SetDotenvKeyResult;
export type UnsetDotenvKeyResult = {
    output: string;
    issues: DotenvIssue[];
    plan: KeyMutationPlanItem;
    hasChanges: boolean;
};
export declare function unsetDotenvKey(options: {
    contents: string;
    key: string;
}): UnsetDotenvKeyResult;
export type DeleteDotenvKeysResult = {
    output: string;
    issues: DotenvIssue[];
    plan: KeyMutationPlanItem[];
    hasChanges: boolean;
};
export declare function deleteDotenvKeys(options: {
    contents: string;
    keys: readonly string[];
}): DeleteDotenvKeysResult;
//# sourceMappingURL=edit.d.ts.map