import type { RuntimeValidator } from '../../../validation/lightweight-validators';
import type { TypedExpressionImplementation, TypedExpressionContext, ExpressionMetadata, ExpressionCategory } from '../../../types/expression-types';
import type { EvaluationResult, ValidationResult, EvaluationType } from '../../../types/command-types';
import { BaseExpressionImpl } from '../../base-expression';
export declare class MeExpression extends BaseExpressionImpl<undefined, HTMLElement | null> implements TypedExpressionImplementation<undefined, HTMLElement | null, TypedExpressionContext> {
    readonly name: "me";
    readonly category: ExpressionCategory;
    readonly syntax = "me";
    readonly description = "References the current element in the execution context";
    readonly inputSchema: RuntimeValidator<undefined>;
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(context: TypedExpressionContext, input: undefined): Promise<EvaluationResult<HTMLElement | null>>;
    validate(input: unknown): ValidationResult;
}
export declare class YouExpression extends BaseExpressionImpl<undefined, HTMLElement | null> implements TypedExpressionImplementation<undefined, HTMLElement | null, TypedExpressionContext> {
    readonly name: "you";
    readonly category: ExpressionCategory;
    readonly syntax = "you";
    readonly description = "References the target element (usually event target or command target)";
    readonly inputSchema: RuntimeValidator<undefined>;
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(context: TypedExpressionContext, input: undefined): Promise<EvaluationResult<HTMLElement | null>>;
    validate(input: unknown): ValidationResult;
}
export declare class ItExpression extends BaseExpressionImpl<undefined, unknown> implements TypedExpressionImplementation<undefined, unknown, TypedExpressionContext> {
    readonly name: "it";
    readonly category: ExpressionCategory;
    readonly syntax = "it";
    readonly description = "References the current context variable (result of previous operation or loop item)";
    readonly inputSchema: RuntimeValidator<undefined>;
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(context: TypedExpressionContext, input: undefined): Promise<EvaluationResult<unknown>>;
    validate(input: unknown): ValidationResult;
}
type CSSSelectorInput = any;
export declare class CSSSelectorExpression extends BaseExpressionImpl<CSSSelectorInput, HTMLElement | HTMLElement[] | null> implements TypedExpressionImplementation<CSSSelectorInput, HTMLElement | HTMLElement[] | null, TypedExpressionContext> {
    readonly name: "css-selector";
    readonly category: ExpressionCategory;
    readonly syntax = "<selector/> or <selector/> (single)";
    readonly description = "Queries DOM elements using CSS selectors with validation";
    readonly inputSchema: RuntimeValidator<unknown>;
    readonly outputType: EvaluationType;
    readonly metadata: ExpressionMetadata;
    evaluate(context: TypedExpressionContext, input: CSSSelectorInput): Promise<EvaluationResult<HTMLElement | HTMLElement[] | null>>;
    validate(input: unknown): ValidationResult;
    private isValidCSSSelector;
    private getValidationSuggestion;
}
export declare const referenceExpressions: {
    readonly me: MeExpression;
    readonly you: YouExpression;
    readonly it: ItExpression;
    readonly 'css-selector': CSSSelectorExpression;
};
export declare function createMeExpression(): MeExpression;
export declare function createYouExpression(): YouExpression;
export declare function createItExpression(): ItExpression;
export declare function createCSSSelectorExpression(): CSSSelectorExpression;
export default referenceExpressions;
//# sourceMappingURL=index.d.ts.map