import type { SchemaComposer, ObjectTypeComposer, InputTypeComposer, EnumTypeComposer, InputTypeComposerAsObjectDefinition, EnumTypeComposerAsObjectDefinition, ObjectTypeComposerAsObjectDefinition } from 'graphql-compose';
import type { ElasticMappingT, FieldsMapByElasticType } from './mappingConverter';
export declare type CommonOpts<TContext = any> = {
    prefix?: string;
    postfix?: string;
    pluralFields?: string[];
    elasticIndex: string;
    elasticType: string;
    elasticClient: any;
    fieldMap: FieldsMapByElasticType;
    sourceTC: ObjectTypeComposer<any, TContext>;
    schemaComposer: SchemaComposer<TContext>;
    getOrCreateOTC: (name: string, onCreate: () => ObjectTypeComposerAsObjectDefinition<any, TContext>) => ObjectTypeComposer<any, TContext>;
    getOrCreateITC: (name: string, onCreate: () => InputTypeComposerAsObjectDefinition) => InputTypeComposer<TContext>;
    getOrCreateETC: (name: string, onCreate: () => EnumTypeComposerAsObjectDefinition) => EnumTypeComposer<TContext>;
};
export declare function prepareCommonOpts<TContext>(schemaComposer: SchemaComposer<TContext>, opts?: any): CommonOpts<TContext>;
export declare function getTypeName(name: string, opts: any): string;
export declare function desc(str: string): string;
export declare function reorderKeys<T extends Record<any, any>>(obj: T, names: string[]): T;
export declare type fetchElasticMappingOptsT = {
    elasticIndex: string;
    elasticType: string;
    elasticMapping: ElasticMappingT;
    elasticClient: any;
};
export declare function fetchElasticMapping(opts: fetchElasticMappingOptsT): Promise<ElasticMappingT>;
//# sourceMappingURL=utils.d.ts.map