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 RemoveCommandInput = {
    type: 'classes';
    classes: string[];
    targets: HTMLElement[];
} | {
    type: 'attribute';
    name: string;
    targets: HTMLElement[];
} | {
    type: 'styles';
    properties: string[];
    targets: HTMLElement[];
} | {
    type: 'element';
    targets: HTMLElement[];
};
export declare class RemoveCommand extends DOMModificationBase {
    protected readonly mode: "remove";
    protected readonly preposition = "from";
    parseInput(raw: {
        args: ASTNode[];
        modifiers: Record<string, ExpressionNode>;
    }, evaluator: ExpressionEvaluator, context: ExecutionContext): Promise<RemoveCommandInput>;
    execute(input: RemoveCommandInput, context: TypedExecutionContext): void;
    validate(input: unknown): input is RemoveCommandInput;
}
export declare const createRemoveCommand: () => RemoveCommand;
export default RemoveCommand;
//# sourceMappingURL=remove.d.ts.map