import { ClassType, InputTypeFn } from "./graphq-compose-typescript"; import { Dict, StringKey } from "./utils"; import { ComposeFieldConfigArgumentMap } from "graphql-compose"; import { ArgumentTypeConvertor } from "./argument-type-convertor"; export declare const METHOD_ARGS: unique symbol; export declare const PARAM_NAMES: unique symbol; declare type ArgsMap = Map, Dict>; export interface ClassMethodWithArgs extends ClassType { [METHOD_ARGS]?: ArgsMap; [PARAM_NAMES]?: string[]; } export declare function setArgumentSpec(constructor: ClassMethodWithArgs, method: StringKey, argName: string, typeFn: InputTypeFn): void; export declare class ParamsNamesKeeper { setParamNameSpec(constructor: ClassType, property: string, name: string, index: number): void; getParamNames(constructor: ClassType, property: string): string[]; getArgumentIndex(constructor: ClassType, property: string, argument: string): number; } export declare class ArgumentsBuilder { protected typ: ArgumentTypeConvertor; protected paramsNamesKeeper: ParamsNamesKeeper; constructor(typ: ArgumentTypeConvertor, paramsNamesKeeper: ParamsNamesKeeper); getArguments(constructor: ClassMethodWithArgs, method: StringKey): ComposeFieldConfigArgumentMap; } export {};