import type { Scope } from '../shared/types.js';
import type { CanonicalEntry } from './scanner.js';
export type EngineScope = Exclude<Scope, 'all'>;
export declare const SYNC_OPERATION_TYPES: readonly ["create_symlink", "create_copy", "update_symlink", "update_copy", "remove", "detach", "skip"];
export type SyncOperationType = (typeof SYNC_OPERATION_TYPES)[number];
export interface SyncPlanEntry {
    canonical: CanonicalEntry;
    provider: string;
    providerPath: string;
    operation: SyncOperationType;
    strategy: 'symlink' | 'copy';
    reason: string;
    renderedContent?: string;
}
export type RemovalSyncPlanEntry = SyncPlanEntry & {
    operation: 'remove' | 'detach';
};
export interface SyncPlan {
    scope: EngineScope;
    entries: SyncPlanEntry[];
    removals: RemovalSyncPlanEntry[];
}
export interface SyncResult {
    applied: number;
    failed: number;
    skipped: number;
}
//# sourceMappingURL=engine.types.d.ts.map