import type { ComlinkAssignmentNode, ComlinkListLiteralNode, ComlinkNoneLiteralNode, ComlinkObjectLiteralNode, ComlinkPrimitiveLiteralNode, EnumDefinitionNode, EnumValueNode, FieldDefinitionNode, ListDefinitionNode, ModelTypeNameNode, NamedFieldDefinitionNode, NamedModelDefinitionNode, NonNullDefinitionNode, ObjectDefinitionNode, PrimitiveTypeNameNode, ProfileASTNode, ProfileDocumentNode, ProfileHeaderNode, Type, UnionDefinitionNode, UseCaseDefinitionNode, UseCaseExampleNode, UseCaseSlotDefinitionNode } from '@superfaceai/ast'; import type { ILogger, ProfileParameterError } from '../../interfaces'; import type { Result } from '../../lib'; import { UnexpectedError } from '../../lib'; import type { ProfileVisitor } from './interfaces'; import type { ValidationError } from './profile-parameter-validator.errors'; declare type ValidationResult = [true] | [false, ValidationError[]]; declare type ValidationFunction = (input: T) => ValidationResult; declare type ProfileParameterKind = 'input' | 'result'; export declare class ProfileParameterValidator implements ProfileVisitor { private readonly ast; private namedFieldDefinitions; private namedModelDefinitions; private namedDefinitionsInitialized; private log?; constructor(ast: ProfileASTNode, logger?: ILogger); validate(input: unknown, kind: ProfileParameterKind, usecase: string): Result; visit(node: ProfileASTNode, kind: ProfileParameterKind, usecase: string): ValidationFunction; visitComlinkListLiteralNode(_node: ComlinkListLiteralNode, _kind: ProfileParameterKind, _usecase: string): never; visitComlinkObjectLiteralNode(_node: ComlinkObjectLiteralNode, _kind: ProfileParameterKind, _usecase: string): never; visitComlinkPrimitiveLiteralNode(_node: ComlinkPrimitiveLiteralNode, _kind: ProfileParameterKind, _usecase: string): never; visitComlinkNoneLiteralNode(_node: ComlinkNoneLiteralNode, _kind: ProfileParameterKind, _usecase: string): never; visitComlinkAssignmentNode(_node: ComlinkAssignmentNode, _kind: ProfileParameterKind, _usecase: string): never; visitEnumDefinitionNode(node: EnumDefinitionNode, kind: ProfileParameterKind, usecase: string): ValidationFunction; visitEnumValueNode(node: EnumValueNode, _kind: ProfileParameterKind, _usecase: string): ValidationFunction; visitFieldDefinitionNode(node: FieldDefinitionNode, kind: ProfileParameterKind, usecase: string): ValidationFunction; visitListDefinitionNode(node: ListDefinitionNode, kind: ProfileParameterKind, usecase: string): ValidationFunction; visitModelTypeNameNode(node: ModelTypeNameNode, _kind: ProfileParameterKind, _usecase: string): ValidationFunction; visitNamedFieldDefinitionNode(node: NamedFieldDefinitionNode, kind: ProfileParameterKind, usecase: string): ValidationFunction; visitNamedModelDefinitionNode(node: NamedModelDefinitionNode, kind: ProfileParameterKind, usecase: string): ValidationFunction; visitNonNullDefinitionNode(node: NonNullDefinitionNode, kind: ProfileParameterKind, usecase: string): ValidationFunction; visitObjectDefinitionNode(node: ObjectDefinitionNode, kind: ProfileParameterKind, usecase: string): ValidationFunction; visitPrimitiveTypeNameNode(node: PrimitiveTypeNameNode, _kind: ProfileParameterKind, _usecase: string): ValidationFunction; visitProfileDocumentNode(node: ProfileDocumentNode, kind: ProfileParameterKind, usecase: string): ValidationFunction; visitProfileHeaderNode(_node: ProfileHeaderNode, _kind: ProfileParameterKind, _usecase: string): ValidationFunction; visitUnionDefinitionNode(node: UnionDefinitionNode, kind: ProfileParameterKind, usecase: string): ValidationFunction; visitUseCaseDefinitionNode(node: UseCaseDefinitionNode, kind: ProfileParameterKind, usecase: string): ValidationFunction; visitUseCaseExampleNode(_node: UseCaseExampleNode, _kind: ProfileParameterKind, _usecase: string): never; visitUseCaseSlotDefinitionNode(_node: UseCaseSlotDefinitionNode, _kind: ProfileParameterKind, _usecase: string): never; } export {};