/// <reference types="node" resolution-mode="require"/>
import { ChildProcess } from 'node:child_process';
import { PushAppCommand } from '../../push-app-command.js';
export default class AppDev extends PushAppCommand {
    static delayOrientation: boolean;
    static examples: string[];
    static flags: {
        'no-push': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
        port: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
        'frontend-port': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
        function: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
        'storefront-id': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
        'storefront-select': import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
        yes: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
    };
    static orientation: {
        env: string;
    };
    static summary: string;
    functionErrors: Map<string, string>;
    functionFilter: string | null;
    functionPorts: Map<string, number>;
    functionProcesses: Map<string, ChildProcess>;
    tmpDir: string;
    frontendPort: number | null;
    isCleaningUp: boolean;
    run(): Promise<void>;
    private cleanupOnExit;
    runAppFrontendDevIfApplicable(frontendPort?: number): Promise<number | undefined>;
    private createFunctionRouter;
    private createTmpDirectory;
    private generateWranglerConfig;
    private getAppFunctions;
    private logAllFunctions;
    private logFunction;
    private onChangeFunctionWatcher;
    private startAppFunctionServer;
    private startFunctionServers;
}
