import initGetOpenAPI from './routes/getOpenAPI.js';
import { type AppEnvVars } from 'application-services';
import { type Dependencies, Knifecycle } from 'knifecycle';
import { type DelayService, type LogService } from 'common-services';
import { type OpenAPITypesConfig } from './commands/generateOpenAPITypes.js';
export type WatchProcessDependencies = OpenAPITypesConfig & {
    ENV: AppEnvVars;
    MAIN_FILE_URL: string;
    $instance: Knifecycle;
    delay: DelayService;
    getOpenAPI: Awaited<ReturnType<typeof initGetOpenAPI>>;
    log: LogService;
};
export type WatchProcessArgs<T extends Dependencies> = {
    injectedNames: string[];
    ignored?: string[];
    watched?: string[];
    afterRestartEnd?: (services: T & WatchProcessDependencies, context: {
        apiChanged: boolean;
        openAPIData: string;
    }) => Promise<void>;
};
export declare const DEFAULT_IGNORED: string[];
export declare const DEFAULT_WATCHED: string[];
export declare function watchDevProcess<T extends Dependencies>({ injectedNames, ignored, watched, afterRestartEnd, }?: WatchProcessArgs<T>): Promise<void>;
export declare function restartDevProcess<T extends Dependencies>({ injectedNames, afterRestartEnd, restartsCounter, }: WatchProcessArgs<T> & {
    restartsCounter: number;
}): Promise<void>;
