import type { ExecutionContext, TypedExecutionContext } from '../../types/core';
import type { ExpressionEvaluator } from '../../core/expression-evaluator';
import type { DecoratedCommand, CommandMetadata } from '../decorators';
import { type VisibilityRawInput, type VisibilityInput } from '../helpers/visibility-target-parser';
export type VisibilityMode = 'show' | 'hide';
export interface VisibilityCommandInput extends VisibilityInput {
    mode: VisibilityMode;
    defaultDisplay?: string;
}
export declare abstract class VisibilityCommandBase implements DecoratedCommand {
    readonly name: string;
    readonly metadata: CommandMetadata;
    protected abstract readonly mode: VisibilityMode;
    parseInput(raw: VisibilityRawInput, evaluator: ExpressionEvaluator, context: ExecutionContext): Promise<VisibilityCommandInput>;
    abstract execute(input: VisibilityCommandInput, context: TypedExecutionContext): Promise<void>;
    validate(input: unknown): input is VisibilityCommandInput;
    protected showElement(element: HTMLElement, defaultDisplay?: string): void;
    protected hideElement(element: HTMLElement): void;
}
//# sourceMappingURL=visibility-base.d.ts.map