import type { ExecutionContext, TypedExecutionContext, ASTNode } from '../../types/core';
import type { ExpressionNode } from '../../types/base-types';
import type { ExpressionEvaluator } from '../../core/expression-evaluator';
import { type SwapStrategy } from '../../lib/swap-executor';
import type { MorphOptions } from '../../lib/morph-adapter';
import { type DecoratedCommand, type CommandMetadata } from '../decorators';
export type { SwapStrategy } from '../../lib/swap-executor';
export interface SwapCommandInput {
    targets: HTMLElement[];
    content: string | HTMLElement | null;
    strategy: SwapStrategy;
    morphOptions?: MorphOptions;
    useViewTransition?: boolean;
}
export declare class SwapCommand implements DecoratedCommand {
    readonly name: string;
    readonly metadata: CommandMetadata;
    parseInput(raw: {
        args: ASTNode[];
        modifiers: Record<string, ExpressionNode>;
    }, evaluator: ExpressionEvaluator, context: ExecutionContext): Promise<SwapCommandInput>;
    execute(input: SwapCommandInput, _context: TypedExecutionContext): Promise<void>;
}
export declare class MorphCommand implements DecoratedCommand {
    readonly name: string;
    readonly metadata: CommandMetadata;
    parseInput(raw: {
        args: ASTNode[];
        modifiers: Record<string, ExpressionNode>;
    }, evaluator: ExpressionEvaluator, context: ExecutionContext): Promise<SwapCommandInput>;
    execute(input: SwapCommandInput, _context: TypedExecutionContext): Promise<void>;
}
export declare const createSwapCommand: () => SwapCommand;
export declare const createMorphCommand: () => MorphCommand;
export declare const swapCommand: SwapCommand;
export declare const morphCommand: MorphCommand;
export default SwapCommand;
//# sourceMappingURL=swap.d.ts.map