import { Ast, Type } from 'thingtalk'; import type { SlotBag } from './slot_bag'; import type { Placeholder, ExpressionWithCoreference, ErrorMessage, ParamSlot, FilterSlot, DomainIndependentFilterSlot, InputParamSlot } from './utils'; export declare function placeholderKeyFn(pl: Placeholder): { type: Type; is_numeric: boolean; }; export declare function valueKeyFn(value: Ast.Value): { type: Type; is_numeric: boolean; is_constant: boolean; }; export declare function valueArrayKeyFn(values: Ast.Value[]): { type: Type; is_numeric: boolean; }; export declare function entityOrNumberValueKeyFn(value: Ast.EntityValue | Ast.NumberValue): { type: Type; is_numeric: boolean; value: string | number | null; }; export declare function filterKeyFn(slot: FilterSlot | DomainIndependentFilterSlot): { functionName: string | null; type: Type | null; is_numeric: boolean; associatedIdType: Type | null; }; export declare function inputParamKeyFn(slot: InputParamSlot): { functionName: string; type: Type; }; export declare function paramKeyFn(slot: ParamSlot): { functionName: string; type: Type; is_numeric: boolean; elem: Type | null; is_numeric_elem: boolean; associatedIdType: Type | null; filterable: boolean; symmetric: boolean; }; export declare function paramArrayKeyFn(slots: ParamSlot[]): { functionName: null; type: null; associatedIdType: null; filterable: boolean; } | { functionName: string; type: Type; associatedIdType: Type | null; filterable: boolean; }; export declare function functionDefKeyFn(fndef: Ast.FunctionDef): { functionName: string; }; export declare function expressionKeyFn(expr: Ast.Expression): { functionName: string; is_list: boolean; is_monitorable: boolean; has_geo: boolean; projectionType: Type | null; isEventProjection: boolean; implicitParamPassingType: Type | null; idType: Type | null; }; export declare function invocationKeyFn(expr: Ast.Invocation): { functionName: string; is_list: boolean; is_monitorable: boolean; has_geo: boolean; idType: Type | null; }; export declare function slotBagKeyFn(expr: SlotBag): { functionName: string | null; idType: Type | null; }; export declare function errorMessageKeyFn(msg: ErrorMessage): { functionName: string | null; }; export declare function expressionStatementKeyFn(expr: Ast.ExpressionStatement): { functionName: string; }; export declare function argMinMaxKeyFn(argminmax: [ParamSlot, 'asc' | 'desc']): { functionName: string; type: Type; is_numeric: boolean; elem: Type | null; is_numeric_elem: boolean; associatedIdType: Type | null; filterable: boolean; symmetric: boolean; }; export declare function expressionWithCoreferenceKeyFn(coref: ExpressionWithCoreference): { functionName: string; idType: Type | null; corefType: Type; corefFunctionName: string | null; };