import type { INode } from '../interfaces'; type ParameterType = 'string' | 'boolean' | 'number' | 'resource-locator' | 'string[]' | 'number[]' | 'boolean[]' | 'object'; export declare function assertParamIsNumber(parameterName: string, value: unknown, node: INode): asserts value is number; export declare function assertParamIsString(parameterName: string, value: unknown, node: INode): asserts value is string; export declare function assertParamIsBoolean(parameterName: string, value: unknown, node: INode): asserts value is boolean; type TypeofMap = { string: string; number: number; boolean: boolean; }; export declare function assertParamIsOfAnyTypes>(parameterName: string, value: unknown, types: T, node: INode): asserts value is TypeofMap[T[number]]; export declare function assertParamIsArray(parameterName: string, value: unknown, validator: (val: unknown) => val is T, node: INode): asserts value is T[]; type InferParameterType = T extends ParameterType[] ? InferSingleParameterType : T extends ParameterType ? InferSingleParameterType : never; type InferSingleParameterType = T extends 'string' ? string : T extends 'boolean' ? boolean : T extends 'number' ? number : T extends 'resource-locator' ? Record : T extends 'string[]' ? string[] : T extends 'number[]' ? number[] : T extends 'boolean[]' ? boolean[] : T extends 'object' ? Record : unknown; export declare function validateNodeParameters>(value: unknown, parameters: T, node: INode): asserts value is { [K in keyof T]: T[K]['required'] extends true ? InferParameterType : InferParameterType | undefined; }; export {}; //# sourceMappingURL=parameter-type-validation.d.ts.map