import { type Injector, type Autoloader, type Initializer, type Dependencies, type Service } from 'knifecycle';
import { type AppConfig } from 'application-services';
import { type WhookRoutesWrappersConfig } from './ROUTES_WRAPPERS.js';
import { type WhookCronsWrappersConfig } from './CRONS_WRAPPERS.js';
import { type WhookConsumersWrappersConfig } from './CONSUMERS_WRAPPERS.js';
import { type WhookTransformersWrappersConfig } from './TRANSFORMERS_WRAPPERS.js';
import { access as _access } from 'node:fs/promises';
import { type ResolveService, type ImporterService, type LogService } from 'common-services';
import { type WhookPluginName, type WhookResolvedPluginsService } from './WHOOK_RESOLVED_PLUGINS.js';
import { type WhookRawCommandArgs } from '../libs/args.js';
import { type WhookCronDefinitionsOptions } from './CRONS_DEFINITIONS.js';
import { type WhookRoutesDefinitionsOptions } from './ROUTES_DEFINITIONS.js';
import { type WhookConsumerDefinitionsOptions } from './CONSUMERS_DEFINITIONS.js';
import { type WhookTransformerDefinitionsOptions } from './TRANSFORMERS_DEFINITIONS.js';
export type WhookInitializerMap = {
    [name: string]: string;
};
export type WhookAutoloadDependencies = WhookRoutesWrappersConfig & WhookCronsWrappersConfig & WhookConsumersWrappersConfig & WhookTransformersWrappersConfig & {
    APP_CONFIG?: AppConfig;
    INITIALIZER_PATH_MAP?: WhookInitializerMap;
    WHOOK_PLUGINS?: WhookPluginName[];
    WHOOK_RESOLVED_PLUGINS: WhookResolvedPluginsService;
    ROUTES_DEFINITIONS_OPTIONS?: WhookRoutesDefinitionsOptions;
    CRONS_DEFINITIONS_OPTIONS?: WhookCronDefinitionsOptions;
    CONSUMERS_DEFINITIONS_OPTIONS?: WhookConsumerDefinitionsOptions;
    TRANSFORMERS_DEFINITIONS_OPTIONS?: WhookTransformerDefinitionsOptions;
    args: WhookRawCommandArgs;
    $injector: Injector<Service>;
    importer: ImporterService<{
        default: Initializer<Service, Dependencies>;
    }>;
    resolve: ResolveService;
    access?: typeof _access;
    log?: LogService;
};
declare const _default: import("knifecycle").ServiceInitializer<WhookAutoloadDependencies, Autoloader<Initializer<unknown, Dependencies>>>;
export default _default;
export declare function checkAccess({ log, access, }: {
    log: LogService;
    access?: typeof _access;
}, url: URL): Promise<Parameters<NonNullable<typeof access>>[0]>;
