import type { DocumentNode } from 'graphql';
import type { Loader, Source } from '@graphql-tools/utils';
import type { ExternalFragmentLoaderOptions } from './options.cjs';
/**
 * Custom-loader entry point for `@graphql-tools/load`.
 *
 * Custom loaders must return a single DocumentNode (or Source). By default,
 * use the synchronous resolver so this entry point works for both
 * `loadTypedefs` and `loadTypedefsSync`. Set `options.async` to use the
 * asynchronous resolver from an asynchronous load call.
 */
type AsyncExternalFragmentLoaderOptions = ExternalFragmentLoaderOptions & {
    async: true;
};
type SyncExternalFragmentLoaderOptions = ExternalFragmentLoaderOptions & {
    async?: false;
};
export default function externalFragmentLoader(_pointer: string, options: AsyncExternalFragmentLoaderOptions): Promise<DocumentNode>;
export default function externalFragmentLoader(_pointer: string, options: SyncExternalFragmentLoaderOptions): DocumentNode;
export default function externalFragmentLoader(_pointer: string, options: ExternalFragmentLoaderOptions): DocumentNode | Promise<DocumentNode>;
export declare class ExternalFragmentLoader implements Loader<ExternalFragmentLoaderOptions> {
    load(_pointer: string, options: ExternalFragmentLoaderOptions): Promise<Source[]>;
    loadSync(_pointer: string, options: ExternalFragmentLoaderOptions): Source[];
}
export {};
