import type { MeshStore } from '@graphql-mesh/store';
import type { ImportFn, KeyValueCache, Logger, MeshFetch, MeshPubSub, YamlConfig } from '@graphql-mesh/types';
import type { Source as GraphQLToolsSource } from '@graphql-tools/utils';
type ResolvedPackage<T> = {
    moduleName: string;
    resolved: T;
};
interface GetPackageOptions {
    name: string;
    type: string;
    importFn: ImportFn;
    cwd: string;
    additionalPrefixes?: string[];
}
export declare function getPackage<T>({ name, type, importFn, cwd, additionalPrefixes, }: GetPackageOptions): Promise<ResolvedPackage<T>>;
export declare function resolveAdditionalTypeDefs(baseDir: string, additionalTypeDefs: string): Promise<import("graphql").DocumentNode[]>;
export declare function resolveCustomFetch({ fetchConfig, importFn, cwd, cache, additionalPackagePrefixes, }: {
    fetchConfig?: string;
    importFn: ImportFn;
    cwd: string;
    additionalPackagePrefixes: string[];
    cache: KeyValueCache;
}): Promise<{
    fetchFn: MeshFetch;
    code: string;
}>;
export declare function resolveCache(cacheConfig: YamlConfig.Config['cache'], importFn: ImportFn, rootStore: MeshStore, cwd: string, pubsub: MeshPubSub, logger: Logger, additionalPackagePrefixes: string[]): Promise<{
    cache: KeyValueCache;
    code: string;
}>;
export declare function resolvePubSub(pubsubYamlConfig: YamlConfig.Config['pubsub'], importFn: ImportFn, cwd: string, additionalPackagePrefixes: string[]): Promise<{
    code: string;
    importCode: string;
    pubsub: MeshPubSub;
}>;
export declare function resolveDocuments(documentsConfig: YamlConfig.Config['documents'], cwd: string): Promise<Source[]>;
export declare function resolveLogger(loggerConfig: YamlConfig.Config['logger'], importFn: ImportFn, cwd: string, additionalPackagePrefixes: string[], initialLoggerPrefix?: string): Promise<{
    importCode: string;
    code: string;
    logger: Logger;
}>;
export declare function hashSHA256(str: string): Promise<string>;
export interface Source extends GraphQLToolsSource {
    sha256Hash?: string;
}
export {};
