import type { ASTNode, ExecutionContext } from '../../types/base-types';
export type SelectorType = 'class' | 'attribute' | 'css-property' | 'element' | 'identifier' | 'unknown';
export type SmartElementTag = 'dialog' | 'details' | 'summary' | 'select';
export declare const SMART_ELEMENT_TAGS: readonly SmartElementTag[];
export declare function detectSelectorType(value: string): SelectorType;
export declare function isSmartElementTag(tag: string): tag is SmartElementTag;
export declare function isSmartElementSelector(selector: string): boolean;
export declare function extractSelectorValue(node: ASTNode): string | null;
export declare function isClassSelectorNode(node: ASTNode): boolean;
export declare function isIdSelectorNode(node: ASTNode): boolean;
export declare function isCSSPropertySelectorNode(node: ASTNode): boolean;
export declare function isBareSmartElementNode(node: ASTNode): boolean;
export type CommandInputType = 'classes' | 'attribute' | 'css-property' | 'element' | 'styles' | 'unknown';
export interface ParsedFirstArg {
    value: unknown;
    extractedFromNode: boolean;
}
export declare function evaluateFirstArg(firstArg: ASTNode, evaluator: {
    evaluate: (node: ASTNode, context: ExecutionContext) => Promise<unknown>;
}, context: ExecutionContext): Promise<ParsedFirstArg>;
export declare function detectInputType(value: string): CommandInputType;
//# sourceMappingURL=selector-type-detection.d.ts.map