import module from 'node:module';

/**
 * ONLY FOR NODE
 *
 * Register and use with:
 *
 * ```sh
 * node --import @graphql-hive/importer/hooks <your script>
 * ```
 *
 * [Read more about Customization Hooks.](https://nodejs.org/api/module.html#customization-hooks)
 */

interface InitializeData {
    /**
     * Packed deps will be checked first, and enforced if present, during module resolution.
     * This allows us to consistently use the same module instance even if multiple are installed by the user.
     */
    packedDepsPath?: string;
    /**
     * tsconfig search path for registering tsconfig paths.
     *
     * @default process.env.HIVE_IMPORTER_TSCONFIG_SEARCH_PATH || 'tsconfig.json'
     */
    tsconfigSearchPath?: string;
}
declare const initialize: module.InitializeHook<InitializeData>;
declare const resolve: module.ResolveHook;
declare const load: module.LoadHook;

export { type InitializeData, initialize, load, resolve };
