///
import { EnumTypeComposer, ObjectTypeComposerArgumentConfigDefinition, ObjectTypeComposerFieldConfigMapDefinition, ObjectTypeComposerArgumentConfigAsObjectDefinition, ObjectTypeComposerFieldConfigAsObjectDefinition } from 'graphql-compose';
export declare type ElasticParamConfigT = {
type: string;
name?: string;
options?: any;
default?: any;
};
export declare type ElasticCaSettingsUrlT = {
fmt: string;
req: {
[name: string]: ElasticParamConfigT;
};
};
export declare type ElasticCaSettingsT = {
params: {
[name: string]: ElasticParamConfigT;
};
url?: ElasticCaSettingsUrlT;
urls?: ElasticCaSettingsUrlT[];
needBody?: true;
method?: string;
};
export declare type ElasticParsedArgsDescriptionsT = {
[argName: string]: string | undefined;
};
export declare type ElasticParsedSourceT = {
[dottedMethodName: string]: {
elasticMethod: string | string[];
description: string | undefined;
argsSettings: ElasticCaSettingsT | undefined;
argsDescriptions: ElasticParsedArgsDescriptionsT;
};
};
export declare type ElasticApiParserOptsT = {
elasticClient?: any;
apiVersion?: string;
prefix?: string;
elasticApiFilePath?: string;
};
export default class ElasticApiParser {
cachedEnums: {
[fieldName: string]: {
[stringifiedValues: string]: EnumTypeComposer;
};
};
apiVersion: string;
prefix: string;
elasticClient: any;
parsedSource: ElasticParsedSourceT;
constructor(opts?: ElasticApiParserOptsT);
static loadFile(absolutePath: string): string;
static loadApiFile(absolutePath: string): string;
static loadApiListFile(absolutePath: string): string;
static findApiVersionFile(version: string): string;
static cleanUpSource(code: string): string;
static parseParamsDescription(doxItemAST: any): {
[fieldName: string]: string | undefined;
};
static cleanupDescription(str: string): string | undefined;
static cleanupParamName(str: string): string | undefined;
static codeToSettings(code: string): ElasticCaSettingsT | undefined;
static getMethodName(str: string): string | string[];
static parseSource(source: string): ElasticParsedSourceT;
generateFieldMap(): ObjectTypeComposerFieldConfigAsObjectDefinition;
generateFieldConfig(methodName: string, methodArgs?: {
[paramName: string]: any;
}): {
type: string;
description: string | undefined;
args: ObjectTypeComposerArgumentConfigAsObjectDefinition;
resolve: (_source: any, args: any, context: any, _info: any) => any;
};
paramToGraphQLArgConfig(paramCfg: ElasticParamConfigT, fieldName: string, description?: string): ObjectTypeComposerArgumentConfigDefinition;
paramTypeToGraphQL(paramCfg: ElasticParamConfigT, fieldName: string): EnumTypeComposer | string;
getEnumType(fieldName: string, values: ReadonlyArray): EnumTypeComposer;
settingsToArgMap(settings?: ElasticCaSettingsT, descriptions?: ElasticParsedArgsDescriptionsT): ObjectTypeComposerArgumentConfigAsObjectDefinition;
reassembleNestedFields(fields: ObjectTypeComposerFieldConfigMapDefinition): ObjectTypeComposerFieldConfigAsObjectDefinition;
}
//# sourceMappingURL=ElasticApiParser.d.ts.map