import type { WorkflowMap, WorkflowStep } from "@bluecadet/launchpad-controller";
import type { PluginConfig } from "@bluecadet/launchpad-utils/plugin-interfaces";
import z from "zod";
export declare const launchpadConfigSchema: z.ZodPrefault<z.ZodObject<{
    controller: z.ZodPrefault<z.ZodPrefault<z.ZodOptional<z.ZodObject<{
        pidFile: z.ZodDefault<z.ZodString>;
        socketPath: z.ZodDefault<z.ZodString>;
        logging: z.ZodPrefault<z.ZodObject<{
            format: z.ZodDefault<z.ZodAny>;
            dirname: z.ZodDefault<z.ZodString>;
            maxSize: z.ZodDefault<z.ZodString>;
            maxFiles: z.ZodDefault<z.ZodString>;
            datePattern: z.ZodDefault<z.ZodString>;
            overrideConsole: z.ZodDefault<z.ZodBoolean>;
        }, z.z.core.$strip>>;
    }, z.z.core.$strip>>>>;
    plugins: z.ZodPrefault<z.ZodArray<z.ZodCustom<PluginConfig<import("@bluecadet/launchpad-utils/plugin-interfaces").BaseCommand, unknown, Error, Partial<import("@bluecadet/launchpad-utils/plugin-interfaces").Disconnectable & import("@bluecadet/launchpad-utils/plugin-interfaces").CommandExecutor<import("@bluecadet/launchpad-utils/plugin-interfaces").BaseCommand>>>, PluginConfig<import("@bluecadet/launchpad-utils/plugin-interfaces").BaseCommand, unknown, Error, Partial<import("@bluecadet/launchpad-utils/plugin-interfaces").Disconnectable & import("@bluecadet/launchpad-utils/plugin-interfaces").CommandExecutor<import("@bluecadet/launchpad-utils/plugin-interfaces").BaseCommand>>>>>>;
    workflows: z.ZodPrefault<z.ZodRecord<z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodCustom<WorkflowStep, WorkflowStep>>>>>;
}, z.z.core.$strip>>;
export type LaunchpadConfig = z.input<typeof launchpadConfigSchema>;
/**
 * Applies defaults to the provided launchpad config.
 */
export declare function resolveLaunchpadConfig(config: LaunchpadConfig): {
    controller: {
        pidFile: string;
        socketPath: string;
        logging: {
            format: any;
            dirname: string;
            maxSize: string;
            maxFiles: string;
            datePattern: string;
            overrideConsole: boolean;
        };
    };
    plugins: PluginConfig<import("@bluecadet/launchpad-utils/plugin-interfaces").BaseCommand, unknown, Error, Partial<import("@bluecadet/launchpad-utils/plugin-interfaces").Disconnectable & import("@bluecadet/launchpad-utils/plugin-interfaces").CommandExecutor<import("@bluecadet/launchpad-utils/plugin-interfaces").BaseCommand>>>[];
    workflows: Record<string, readonly WorkflowStep[]>;
};
export type ResolvedLaunchpadOptions = ReturnType<typeof resolveLaunchpadConfig>;
export type LaunchpadWorkflows = WorkflowMap;
/**
 * Type definition for the config object.
 */
export declare function defineConfig(config: LaunchpadConfig): {
    controller?: {
        pidFile?: string | undefined;
        socketPath?: string | undefined;
        logging?: {
            format?: any;
            dirname?: string | undefined;
            maxSize?: string | undefined;
            maxFiles?: string | undefined;
            datePattern?: string | undefined;
            overrideConsole?: boolean | undefined;
        } | undefined;
    } | undefined;
    plugins?: PluginConfig<import("@bluecadet/launchpad-utils/plugin-interfaces").BaseCommand, unknown, Error, Partial<import("@bluecadet/launchpad-utils/plugin-interfaces").Disconnectable & import("@bluecadet/launchpad-utils/plugin-interfaces").CommandExecutor<import("@bluecadet/launchpad-utils/plugin-interfaces").BaseCommand>>>[] | undefined;
    workflows?: Record<string, readonly WorkflowStep[]> | undefined;
} | undefined;
//# sourceMappingURL=launchpad-config.d.ts.map