import type { CopyStrategy } from "../core/config.js";
import type { ICopyStrategy } from "./strategy.interface.js";
export type { ICopyStrategy, StrategyContext } from "./strategy.interface.js";
export { CopyOverwriteStrategy } from "./copy-overwrite.js";
export { CopyContentsStrategy } from "./copy-contents.js";
export { CreateOnlyStrategy } from "./create-only.js";
export { MergeStrategy } from "./merge.js";
export { TaggedMergeStrategy } from "./tagged-merge.js";
export { PackageLisaStrategy } from "./package-lisa.js";
/**
 * Registry for copy strategies
 */
export declare class StrategyRegistry {
    private readonly strategies;
    /**
     * Initialize strategy registry with provided or default strategies
     * @param strategies - Optional array of strategies (uses defaults if omitted)
     */
    constructor(strategies?: readonly ICopyStrategy[]);
    /**
     * Get a strategy by name
     * @param name - Name of the strategy to retrieve
     * @returns The strategy instance with the given name
     */
    get(name: CopyStrategy): ICopyStrategy;
    /**
     * Check if a strategy exists
     * @param name - Name of the strategy to check
     * @returns True if the strategy is registered
     */
    has(name: CopyStrategy): boolean;
    /**
     * Get all registered strategies
     * @returns Array of all strategy instances
     */
    getAll(): readonly ICopyStrategy[];
}
/**
 * Create default strategy registry
 * @returns New StrategyRegistry instance with all default strategies
 */
export declare function createStrategyRegistry(): StrategyRegistry;
//# sourceMappingURL=index.d.ts.map