UNPKG

docker-pilot

Version:

A powerful, scalable Docker CLI library for managing containerized applications of any size

1,002 lines 36.4 kB
/** * Type definitions for Docker Pilot */ import { z } from 'zod'; export type SupportedLanguage = 'en' | 'pt-br'; export declare const ServiceConfigSchema: z.ZodObject<{ port: z.ZodNullable<z.ZodOptional<z.ZodNumber>>; path: z.ZodNullable<z.ZodOptional<z.ZodString>>; description: z.ZodOptional<z.ZodString>; healthCheck: z.ZodDefault<z.ZodBoolean>; backupEnabled: z.ZodDefault<z.ZodBoolean>; environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; volumes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; depends_on: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; networks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; restart: z.ZodDefault<z.ZodEnum<["no", "always", "on-failure", "unless-stopped"]>>; scale: z.ZodDefault<z.ZodNumber>; cpu_limit: z.ZodOptional<z.ZodString>; memory_limit: z.ZodOptional<z.ZodString>; detected: z.ZodOptional<z.ZodBoolean>; build: z.ZodOptional<z.ZodObject<{ context: z.ZodString; dockerfile: z.ZodOptional<z.ZodString>; args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; target: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { context: string; dockerfile?: string | undefined; args?: Record<string, string> | undefined; target?: string | undefined; }, { context: string; dockerfile?: string | undefined; args?: Record<string, string> | undefined; target?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { healthCheck: boolean; backupEnabled: boolean; restart: "no" | "always" | "on-failure" | "unless-stopped"; scale: number; port?: number | null | undefined; path?: string | null | undefined; description?: string | undefined; environment?: Record<string, string> | undefined; volumes?: string[] | undefined; depends_on?: string[] | undefined; networks?: string[] | undefined; cpu_limit?: string | undefined; memory_limit?: string | undefined; detected?: boolean | undefined; build?: { context: string; dockerfile?: string | undefined; args?: Record<string, string> | undefined; target?: string | undefined; } | undefined; }, { port?: number | null | undefined; path?: string | null | undefined; description?: string | undefined; healthCheck?: boolean | undefined; backupEnabled?: boolean | undefined; environment?: Record<string, string> | undefined; volumes?: string[] | undefined; depends_on?: string[] | undefined; networks?: string[] | undefined; restart?: "no" | "always" | "on-failure" | "unless-stopped" | undefined; scale?: number | undefined; cpu_limit?: string | undefined; memory_limit?: string | undefined; detected?: boolean | undefined; build?: { context: string; dockerfile?: string | undefined; args?: Record<string, string> | undefined; target?: string | undefined; } | undefined; }>; export type ServiceConfig = z.infer<typeof ServiceConfigSchema>; export declare const CLIConfigSchema: z.ZodObject<{ version: z.ZodDefault<z.ZodString>; welcomeMessage: z.ZodDefault<z.ZodString>; goodbyeMessage: z.ZodDefault<z.ZodString>; interactiveMode: z.ZodDefault<z.ZodBoolean>; colorOutput: z.ZodDefault<z.ZodBoolean>; verboseLogging: z.ZodDefault<z.ZodBoolean>; confirmDestructiveActions: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { version: string; welcomeMessage: string; goodbyeMessage: string; interactiveMode: boolean; colorOutput: boolean; verboseLogging: boolean; confirmDestructiveActions: boolean; }, { version?: string | undefined; welcomeMessage?: string | undefined; goodbyeMessage?: string | undefined; interactiveMode?: boolean | undefined; colorOutput?: boolean | undefined; verboseLogging?: boolean | undefined; confirmDestructiveActions?: boolean | undefined; }>; export type CLIConfig = z.infer<typeof CLIConfigSchema>; export declare const BackupServiceConfigSchema: z.ZodObject<{ command: z.ZodString; filename: z.ZodString; preBackupHook: z.ZodOptional<z.ZodString>; postBackupHook: z.ZodOptional<z.ZodString>; compression: z.ZodDefault<z.ZodBoolean>; encryption: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { command: string; filename: string; compression: boolean; encryption: boolean; preBackupHook?: string | undefined; postBackupHook?: string | undefined; }, { command: string; filename: string; preBackupHook?: string | undefined; postBackupHook?: string | undefined; compression?: boolean | undefined; encryption?: boolean | undefined; }>; export declare const BackupConfigSchema: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; directory: z.ZodDefault<z.ZodString>; retention: z.ZodDefault<z.ZodNumber>; schedule: z.ZodOptional<z.ZodString>; services: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{ command: z.ZodString; filename: z.ZodString; preBackupHook: z.ZodOptional<z.ZodString>; postBackupHook: z.ZodOptional<z.ZodString>; compression: z.ZodDefault<z.ZodBoolean>; encryption: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { command: string; filename: string; compression: boolean; encryption: boolean; preBackupHook?: string | undefined; postBackupHook?: string | undefined; }, { command: string; filename: string; preBackupHook?: string | undefined; postBackupHook?: string | undefined; compression?: boolean | undefined; encryption?: boolean | undefined; }>>>; cloud: z.ZodOptional<z.ZodObject<{ provider: z.ZodOptional<z.ZodEnum<["aws", "gcp", "azure"]>>; bucket: z.ZodOptional<z.ZodString>; region: z.ZodOptional<z.ZodString>; credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, "strip", z.ZodTypeAny, { provider?: "aws" | "gcp" | "azure" | undefined; bucket?: string | undefined; region?: string | undefined; credentials?: Record<string, string> | undefined; }, { provider?: "aws" | "gcp" | "azure" | undefined; bucket?: string | undefined; region?: string | undefined; credentials?: Record<string, string> | undefined; }>>; }, "strip", z.ZodTypeAny, { enabled: boolean; directory: string; retention: number; services: Record<string, { command: string; filename: string; compression: boolean; encryption: boolean; preBackupHook?: string | undefined; postBackupHook?: string | undefined; }>; schedule?: string | undefined; cloud?: { provider?: "aws" | "gcp" | "azure" | undefined; bucket?: string | undefined; region?: string | undefined; credentials?: Record<string, string> | undefined; } | undefined; }, { enabled?: boolean | undefined; directory?: string | undefined; retention?: number | undefined; schedule?: string | undefined; services?: Record<string, { command: string; filename: string; preBackupHook?: string | undefined; postBackupHook?: string | undefined; compression?: boolean | undefined; encryption?: boolean | undefined; }> | undefined; cloud?: { provider?: "aws" | "gcp" | "azure" | undefined; bucket?: string | undefined; region?: string | undefined; credentials?: Record<string, string> | undefined; } | undefined; }>; export type BackupConfig = z.infer<typeof BackupConfigSchema>; export type BackupServiceConfig = z.infer<typeof BackupServiceConfigSchema>; export declare const MonitoringConfigSchema: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; refreshInterval: z.ZodDefault<z.ZodNumber>; services: z.ZodDefault<z.ZodArray<z.ZodString, "many">>; urls: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>; alerts: z.ZodDefault<z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; email: z.ZodOptional<z.ZodString>; webhook: z.ZodOptional<z.ZodString>; thresholds: z.ZodDefault<z.ZodObject<{ cpu: z.ZodDefault<z.ZodNumber>; memory: z.ZodDefault<z.ZodNumber>; disk: z.ZodDefault<z.ZodNumber>; }, "strip", z.ZodTypeAny, { cpu: number; memory: number; disk: number; }, { cpu?: number | undefined; memory?: number | undefined; disk?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { enabled: boolean; thresholds: { cpu: number; memory: number; disk: number; }; email?: string | undefined; webhook?: string | undefined; }, { enabled?: boolean | undefined; email?: string | undefined; webhook?: string | undefined; thresholds?: { cpu?: number | undefined; memory?: number | undefined; disk?: number | undefined; } | undefined; }>>; }, "strip", z.ZodTypeAny, { enabled: boolean; services: string[]; refreshInterval: number; urls: Record<string, string>; alerts: { enabled: boolean; thresholds: { cpu: number; memory: number; disk: number; }; email?: string | undefined; webhook?: string | undefined; }; }, { enabled?: boolean | undefined; services?: string[] | undefined; refreshInterval?: number | undefined; urls?: Record<string, string> | undefined; alerts?: { enabled?: boolean | undefined; email?: string | undefined; webhook?: string | undefined; thresholds?: { cpu?: number | undefined; memory?: number | undefined; disk?: number | undefined; } | undefined; } | undefined; }>; export type MonitoringConfig = z.infer<typeof MonitoringConfigSchema>; export declare const DevelopmentConfigSchema: z.ZodObject<{ hotReload: z.ZodDefault<z.ZodBoolean>; debugMode: z.ZodDefault<z.ZodBoolean>; logLevel: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>; autoMigrate: z.ZodDefault<z.ZodBoolean>; seedData: z.ZodDefault<z.ZodBoolean>; testMode: z.ZodDefault<z.ZodBoolean>; watchFiles: z.ZodDefault<z.ZodArray<z.ZodString, "many">>; environment: z.ZodDefault<z.ZodEnum<["development", "staging", "production"]>>; }, "strip", z.ZodTypeAny, { environment: "development" | "staging" | "production"; hotReload: boolean; debugMode: boolean; logLevel: "debug" | "info" | "warn" | "error"; autoMigrate: boolean; seedData: boolean; testMode: boolean; watchFiles: string[]; }, { environment?: "development" | "staging" | "production" | undefined; hotReload?: boolean | undefined; debugMode?: boolean | undefined; logLevel?: "debug" | "info" | "warn" | "error" | undefined; autoMigrate?: boolean | undefined; seedData?: boolean | undefined; testMode?: boolean | undefined; watchFiles?: string[] | undefined; }>; export type DevelopmentConfig = z.infer<typeof DevelopmentConfigSchema>; export declare const DockerPilotConfigSchema: z.ZodObject<{ projectName: z.ZodString; dockerCompose: z.ZodDefault<z.ZodString>; configVersion: z.ZodDefault<z.ZodString>; primaryComposeFile: z.ZodOptional<z.ZodString>; services: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{ port: z.ZodNullable<z.ZodOptional<z.ZodNumber>>; path: z.ZodNullable<z.ZodOptional<z.ZodString>>; description: z.ZodOptional<z.ZodString>; healthCheck: z.ZodDefault<z.ZodBoolean>; backupEnabled: z.ZodDefault<z.ZodBoolean>; environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; volumes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; depends_on: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; networks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; restart: z.ZodDefault<z.ZodEnum<["no", "always", "on-failure", "unless-stopped"]>>; scale: z.ZodDefault<z.ZodNumber>; cpu_limit: z.ZodOptional<z.ZodString>; memory_limit: z.ZodOptional<z.ZodString>; detected: z.ZodOptional<z.ZodBoolean>; build: z.ZodOptional<z.ZodObject<{ context: z.ZodString; dockerfile: z.ZodOptional<z.ZodString>; args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; target: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { context: string; dockerfile?: string | undefined; args?: Record<string, string> | undefined; target?: string | undefined; }, { context: string; dockerfile?: string | undefined; args?: Record<string, string> | undefined; target?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { healthCheck: boolean; backupEnabled: boolean; restart: "no" | "always" | "on-failure" | "unless-stopped"; scale: number; port?: number | null | undefined; path?: string | null | undefined; description?: string | undefined; environment?: Record<string, string> | undefined; volumes?: string[] | undefined; depends_on?: string[] | undefined; networks?: string[] | undefined; cpu_limit?: string | undefined; memory_limit?: string | undefined; detected?: boolean | undefined; build?: { context: string; dockerfile?: string | undefined; args?: Record<string, string> | undefined; target?: string | undefined; } | undefined; }, { port?: number | null | undefined; path?: string | null | undefined; description?: string | undefined; healthCheck?: boolean | undefined; backupEnabled?: boolean | undefined; environment?: Record<string, string> | undefined; volumes?: string[] | undefined; depends_on?: string[] | undefined; networks?: string[] | undefined; restart?: "no" | "always" | "on-failure" | "unless-stopped" | undefined; scale?: number | undefined; cpu_limit?: string | undefined; memory_limit?: string | undefined; detected?: boolean | undefined; build?: { context: string; dockerfile?: string | undefined; args?: Record<string, string> | undefined; target?: string | undefined; } | undefined; }>>>; plugins: z.ZodDefault<z.ZodArray<z.ZodString, "many">>; cli: z.ZodDefault<z.ZodObject<{ version: z.ZodDefault<z.ZodString>; welcomeMessage: z.ZodDefault<z.ZodString>; goodbyeMessage: z.ZodDefault<z.ZodString>; interactiveMode: z.ZodDefault<z.ZodBoolean>; colorOutput: z.ZodDefault<z.ZodBoolean>; verboseLogging: z.ZodDefault<z.ZodBoolean>; confirmDestructiveActions: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { version: string; welcomeMessage: string; goodbyeMessage: string; interactiveMode: boolean; colorOutput: boolean; verboseLogging: boolean; confirmDestructiveActions: boolean; }, { version?: string | undefined; welcomeMessage?: string | undefined; goodbyeMessage?: string | undefined; interactiveMode?: boolean | undefined; colorOutput?: boolean | undefined; verboseLogging?: boolean | undefined; confirmDestructiveActions?: boolean | undefined; }>>; backup: z.ZodDefault<z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; directory: z.ZodDefault<z.ZodString>; retention: z.ZodDefault<z.ZodNumber>; schedule: z.ZodOptional<z.ZodString>; services: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{ command: z.ZodString; filename: z.ZodString; preBackupHook: z.ZodOptional<z.ZodString>; postBackupHook: z.ZodOptional<z.ZodString>; compression: z.ZodDefault<z.ZodBoolean>; encryption: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { command: string; filename: string; compression: boolean; encryption: boolean; preBackupHook?: string | undefined; postBackupHook?: string | undefined; }, { command: string; filename: string; preBackupHook?: string | undefined; postBackupHook?: string | undefined; compression?: boolean | undefined; encryption?: boolean | undefined; }>>>; cloud: z.ZodOptional<z.ZodObject<{ provider: z.ZodOptional<z.ZodEnum<["aws", "gcp", "azure"]>>; bucket: z.ZodOptional<z.ZodString>; region: z.ZodOptional<z.ZodString>; credentials: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, "strip", z.ZodTypeAny, { provider?: "aws" | "gcp" | "azure" | undefined; bucket?: string | undefined; region?: string | undefined; credentials?: Record<string, string> | undefined; }, { provider?: "aws" | "gcp" | "azure" | undefined; bucket?: string | undefined; region?: string | undefined; credentials?: Record<string, string> | undefined; }>>; }, "strip", z.ZodTypeAny, { enabled: boolean; directory: string; retention: number; services: Record<string, { command: string; filename: string; compression: boolean; encryption: boolean; preBackupHook?: string | undefined; postBackupHook?: string | undefined; }>; schedule?: string | undefined; cloud?: { provider?: "aws" | "gcp" | "azure" | undefined; bucket?: string | undefined; region?: string | undefined; credentials?: Record<string, string> | undefined; } | undefined; }, { enabled?: boolean | undefined; directory?: string | undefined; retention?: number | undefined; schedule?: string | undefined; services?: Record<string, { command: string; filename: string; preBackupHook?: string | undefined; postBackupHook?: string | undefined; compression?: boolean | undefined; encryption?: boolean | undefined; }> | undefined; cloud?: { provider?: "aws" | "gcp" | "azure" | undefined; bucket?: string | undefined; region?: string | undefined; credentials?: Record<string, string> | undefined; } | undefined; }>>; monitoring: z.ZodDefault<z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; refreshInterval: z.ZodDefault<z.ZodNumber>; services: z.ZodDefault<z.ZodArray<z.ZodString, "many">>; urls: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>; alerts: z.ZodDefault<z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; email: z.ZodOptional<z.ZodString>; webhook: z.ZodOptional<z.ZodString>; thresholds: z.ZodDefault<z.ZodObject<{ cpu: z.ZodDefault<z.ZodNumber>; memory: z.ZodDefault<z.ZodNumber>; disk: z.ZodDefault<z.ZodNumber>; }, "strip", z.ZodTypeAny, { cpu: number; memory: number; disk: number; }, { cpu?: number | undefined; memory?: number | undefined; disk?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { enabled: boolean; thresholds: { cpu: number; memory: number; disk: number; }; email?: string | undefined; webhook?: string | undefined; }, { enabled?: boolean | undefined; email?: string | undefined; webhook?: string | undefined; thresholds?: { cpu?: number | undefined; memory?: number | undefined; disk?: number | undefined; } | undefined; }>>; }, "strip", z.ZodTypeAny, { enabled: boolean; services: string[]; refreshInterval: number; urls: Record<string, string>; alerts: { enabled: boolean; thresholds: { cpu: number; memory: number; disk: number; }; email?: string | undefined; webhook?: string | undefined; }; }, { enabled?: boolean | undefined; services?: string[] | undefined; refreshInterval?: number | undefined; urls?: Record<string, string> | undefined; alerts?: { enabled?: boolean | undefined; email?: string | undefined; webhook?: string | undefined; thresholds?: { cpu?: number | undefined; memory?: number | undefined; disk?: number | undefined; } | undefined; } | undefined; }>>; development: z.ZodDefault<z.ZodObject<{ hotReload: z.ZodDefault<z.ZodBoolean>; debugMode: z.ZodDefault<z.ZodBoolean>; logLevel: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>; autoMigrate: z.ZodDefault<z.ZodBoolean>; seedData: z.ZodDefault<z.ZodBoolean>; testMode: z.ZodDefault<z.ZodBoolean>; watchFiles: z.ZodDefault<z.ZodArray<z.ZodString, "many">>; environment: z.ZodDefault<z.ZodEnum<["development", "staging", "production"]>>; }, "strip", z.ZodTypeAny, { environment: "development" | "staging" | "production"; hotReload: boolean; debugMode: boolean; logLevel: "debug" | "info" | "warn" | "error"; autoMigrate: boolean; seedData: boolean; testMode: boolean; watchFiles: string[]; }, { environment?: "development" | "staging" | "production" | undefined; hotReload?: boolean | undefined; debugMode?: boolean | undefined; logLevel?: "debug" | "info" | "warn" | "error" | undefined; autoMigrate?: boolean | undefined; seedData?: boolean | undefined; testMode?: boolean | undefined; watchFiles?: string[] | undefined; }>>; networks: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{ driver: z.ZodOptional<z.ZodString>; external: z.ZodDefault<z.ZodBoolean>; ipam: z.ZodOptional<z.ZodObject<{ driver: z.ZodOptional<z.ZodString>; config: z.ZodOptional<z.ZodArray<z.ZodObject<{ subnet: z.ZodString; gateway: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { subnet: string; gateway?: string | undefined; }, { subnet: string; gateway?: string | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { driver?: string | undefined; config?: { subnet: string; gateway?: string | undefined; }[] | undefined; }, { driver?: string | undefined; config?: { subnet: string; gateway?: string | undefined; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { external: boolean; driver?: string | undefined; ipam?: { driver?: string | undefined; config?: { subnet: string; gateway?: string | undefined; }[] | undefined; } | undefined; }, { driver?: string | undefined; external?: boolean | undefined; ipam?: { driver?: string | undefined; config?: { subnet: string; gateway?: string | undefined; }[] | undefined; } | undefined; }>>>; volumes: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{ driver: z.ZodOptional<z.ZodString>; external: z.ZodDefault<z.ZodBoolean>; driver_opts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, "strip", z.ZodTypeAny, { external: boolean; driver?: string | undefined; driver_opts?: Record<string, string> | undefined; }, { driver?: string | undefined; external?: boolean | undefined; driver_opts?: Record<string, string> | undefined; }>>>; language: z.ZodDefault<z.ZodEnum<["en", "pt-br"]>>; }, "strip", z.ZodTypeAny, { volumes: Record<string, { external: boolean; driver?: string | undefined; driver_opts?: Record<string, string> | undefined; }>; networks: Record<string, { external: boolean; driver?: string | undefined; ipam?: { driver?: string | undefined; config?: { subnet: string; gateway?: string | undefined; }[] | undefined; } | undefined; }>; services: Record<string, { healthCheck: boolean; backupEnabled: boolean; restart: "no" | "always" | "on-failure" | "unless-stopped"; scale: number; port?: number | null | undefined; path?: string | null | undefined; description?: string | undefined; environment?: Record<string, string> | undefined; volumes?: string[] | undefined; depends_on?: string[] | undefined; networks?: string[] | undefined; cpu_limit?: string | undefined; memory_limit?: string | undefined; detected?: boolean | undefined; build?: { context: string; dockerfile?: string | undefined; args?: Record<string, string> | undefined; target?: string | undefined; } | undefined; }>; development: { environment: "development" | "staging" | "production"; hotReload: boolean; debugMode: boolean; logLevel: "debug" | "info" | "warn" | "error"; autoMigrate: boolean; seedData: boolean; testMode: boolean; watchFiles: string[]; }; projectName: string; dockerCompose: string; configVersion: string; plugins: string[]; cli: { version: string; welcomeMessage: string; goodbyeMessage: string; interactiveMode: boolean; colorOutput: boolean; verboseLogging: boolean; confirmDestructiveActions: boolean; }; backup: { enabled: boolean; directory: string; retention: number; services: Record<string, { command: string; filename: string; compression: boolean; encryption: boolean; preBackupHook?: string | undefined; postBackupHook?: string | undefined; }>; schedule?: string | undefined; cloud?: { provider?: "aws" | "gcp" | "azure" | undefined; bucket?: string | undefined; region?: string | undefined; credentials?: Record<string, string> | undefined; } | undefined; }; monitoring: { enabled: boolean; services: string[]; refreshInterval: number; urls: Record<string, string>; alerts: { enabled: boolean; thresholds: { cpu: number; memory: number; disk: number; }; email?: string | undefined; webhook?: string | undefined; }; }; language: "en" | "pt-br"; primaryComposeFile?: string | undefined; }, { projectName: string; volumes?: Record<string, { driver?: string | undefined; external?: boolean | undefined; driver_opts?: Record<string, string> | undefined; }> | undefined; networks?: Record<string, { driver?: string | undefined; external?: boolean | undefined; ipam?: { driver?: string | undefined; config?: { subnet: string; gateway?: string | undefined; }[] | undefined; } | undefined; }> | undefined; services?: Record<string, { port?: number | null | undefined; path?: string | null | undefined; description?: string | undefined; healthCheck?: boolean | undefined; backupEnabled?: boolean | undefined; environment?: Record<string, string> | undefined; volumes?: string[] | undefined; depends_on?: string[] | undefined; networks?: string[] | undefined; restart?: "no" | "always" | "on-failure" | "unless-stopped" | undefined; scale?: number | undefined; cpu_limit?: string | undefined; memory_limit?: string | undefined; detected?: boolean | undefined; build?: { context: string; dockerfile?: string | undefined; args?: Record<string, string> | undefined; target?: string | undefined; } | undefined; }> | undefined; development?: { environment?: "development" | "staging" | "production" | undefined; hotReload?: boolean | undefined; debugMode?: boolean | undefined; logLevel?: "debug" | "info" | "warn" | "error" | undefined; autoMigrate?: boolean | undefined; seedData?: boolean | undefined; testMode?: boolean | undefined; watchFiles?: string[] | undefined; } | undefined; dockerCompose?: string | undefined; configVersion?: string | undefined; primaryComposeFile?: string | undefined; plugins?: string[] | undefined; cli?: { version?: string | undefined; welcomeMessage?: string | undefined; goodbyeMessage?: string | undefined; interactiveMode?: boolean | undefined; colorOutput?: boolean | undefined; verboseLogging?: boolean | undefined; confirmDestructiveActions?: boolean | undefined; } | undefined; backup?: { enabled?: boolean | undefined; directory?: string | undefined; retention?: number | undefined; schedule?: string | undefined; services?: Record<string, { command: string; filename: string; preBackupHook?: string | undefined; postBackupHook?: string | undefined; compression?: boolean | undefined; encryption?: boolean | undefined; }> | undefined; cloud?: { provider?: "aws" | "gcp" | "azure" | undefined; bucket?: string | undefined; region?: string | undefined; credentials?: Record<string, string> | undefined; } | undefined; } | undefined; monitoring?: { enabled?: boolean | undefined; services?: string[] | undefined; refreshInterval?: number | undefined; urls?: Record<string, string> | undefined; alerts?: { enabled?: boolean | undefined; email?: string | undefined; webhook?: string | undefined; thresholds?: { cpu?: number | undefined; memory?: number | undefined; disk?: number | undefined; } | undefined; } | undefined; } | undefined; language?: "en" | "pt-br" | undefined; }>; export type DockerPilotConfig = z.infer<typeof DockerPilotConfigSchema>; export interface CommandContext { config: DockerPilotConfig; logger: any; workingDirectory: string; composeFile?: string; } export interface CommandOptions { silent?: boolean; dryRun?: boolean; interactive?: boolean; timeout?: number; } export interface CommandResult { success: boolean; output?: string; error?: string; exitCode?: number; executionTime?: number; } export interface ServiceStatus { name: string; state: 'running' | 'stopped' | 'starting' | 'stopping' | 'error' | 'unknown'; health: 'healthy' | 'unhealthy' | 'starting' | 'none'; uptime?: string; ports?: string[]; image?: string; containerId?: string; cpuUsage?: number; memoryUsage?: number; networkIO?: { rx: string; tx: string; }; blockIO?: { read: string; write: string; }; } export interface ProjectStatus { projectName: string; totalServices: number; runningServices: number; healthyServices: number; services: ServiceStatus[]; networks: string[]; volumes: string[]; lastUpdated: Date; } export interface PluginMetadata { name: string; version: string; description: string; author: string; homepage?: string; repository?: string; keywords?: string[]; } export interface PluginHooks { beforeCommand?: (command: string, args: string[]) => Promise<void> | void; afterCommand?: (command: string, args: string[], result: CommandResult) => Promise<void> | void; beforeServiceStart?: (serviceName: string) => Promise<void> | void; afterServiceStart?: (serviceName: string) => Promise<void> | void; beforeServiceStop?: (serviceName: string) => Promise<void> | void; afterServiceStop?: (serviceName: string) => Promise<void> | void; onError?: (error: Error, context: any) => Promise<void> | void; } export interface Plugin { metadata: PluginMetadata; hooks?: PluginHooks; commands?: Record<string, (args: string[], options: CommandOptions) => Promise<CommandResult>>; initialize?: (context: CommandContext) => Promise<void> | void; cleanup?: () => Promise<void> | void; } export type EventType = 'command:start' | 'command:end' | 'command:error' | 'service:start' | 'service:stop' | 'service:restart' | 'service:error' | 'config:loaded' | 'config:saved' | 'plugin:loaded' | 'plugin:error'; export interface DockerPilotEvent { type: EventType; timestamp: Date; data: any; source: string; } export type LogLevel = 'debug' | 'info' | 'warn' | 'error'; export interface LogEntry { level: LogLevel; message: string; timestamp: Date; context?: any; source?: string; } export interface DockerComposeService { image?: string; build?: string | { context: string; dockerfile?: string; args?: Record<string, string>; target?: string; }; ports?: string[]; volumes?: string[]; environment?: Record<string, string> | string[]; depends_on?: string[] | Record<string, { condition: string; }>; networks?: string[]; restart?: string; healthcheck?: { test: string | string[]; interval?: string; timeout?: string; retries?: number; start_period?: string; }; } export interface DockerComposeConfig { version?: string; services: Record<string, DockerComposeService>; networks?: Record<string, any>; volumes?: Record<string, any>; } export declare class DockerPilotError extends Error { code: string; context?: any | undefined; constructor(message: string, code: string, context?: any | undefined); } export declare class ConfigurationError extends DockerPilotError { constructor(message: string, context?: any); } export declare class CommandExecutionError extends DockerPilotError { constructor(message: string, context?: any); } export declare class ServiceError extends DockerPilotError { constructor(message: string, context?: any); } export declare class PluginError extends DockerPilotError { constructor(message: string, context?: any); } //# sourceMappingURL=index.d.ts.map