import type { ExecutionContext, TypedExecutionContext } from '../../types/core';
import type { ASTNode, ExpressionNode } from '../../types/base-types';
import type { ExpressionEvaluator } from '../../core/expression-evaluator';
import { DOMModificationBase } from './dom-modification-base';
export type AddCommandInput = {
    type: 'classes';
    classes: string[];
    targets: HTMLElement[];
} | {
    type: 'attribute';
    name: string;
    value: string;
    targets: HTMLElement[];
} | {
    type: 'styles';
    styles: Record<string, string>;
    targets: HTMLElement[];
};
export declare class AddCommand extends DOMModificationBase {
    protected readonly mode: "add";
    protected readonly preposition = "to";
    parseInput(raw: {
        args: ASTNode[];
        modifiers: Record<string, ExpressionNode>;
    }, evaluator: ExpressionEvaluator, context: ExecutionContext): Promise<AddCommandInput>;
    execute(input: AddCommandInput, context: TypedExecutionContext): Promise<void>;
    validate(input: unknown): input is AddCommandInput;
}
export declare const createAddCommand: () => AddCommand;
export default AddCommand;
//# sourceMappingURL=add.d.ts.map