import { Result as ExecaResult } from 'execa'; import { GetAddressForServiceParams, ServiceComposeDefinition, ServiceAddresses } from './service-compose-network.js'; import { Container } from './list-containers.js'; import { ExitOptions } from './container-lifecycle.js'; type EnvFunc = () => string | number; type EnvAsyncFunc = () => Promise; type Env = Record | EnvFunc | EnvAsyncFunc>; type ExecaCommandResult = ExecaResult<{ all: false; stdio: 'pipe'; }>; export interface ComposeOptions { servicesToStart?: string[]; tailServices?: string; projectName?: string; env?: Env; orphanCleanup?: boolean; cleanup?: boolean; pullImages?: boolean; forceKill?: boolean; containerRetentionInMinutes?: number; defaultServicePort?: number; } export interface Compose { projectName: string; pathToCompose: string; pullImages: () => Promise; setup: () => Promise; teardown: () => Promise; getAddressForService: (...options: GetAddressForServiceParams) => Promise; getAddressesForServices: (...options: ServiceDefinitions) => Promise>; getInternalIpForService: (serviceName: string) => Promise; listContainers: () => Promise; containerExists: (serviceName: string) => Promise; getLogsForService: (serviceName: string) => Promise; waitForServiceToExit: (serviceName: string, options?: ExitOptions) => Promise; runService: (serviceName: string, commandWithArgs: string[]) => Promise; execInService: (serviceName: string, commandWithArgs: string[]) => Promise; startService: (serviceName: string) => Promise; stopService: (serviceName: string) => Promise; pauseService: (serviceName: string) => Promise; unpauseService: (serviceName: string) => Promise; } export declare function compose(pathToCompose: string, options?: ComposeOptions): Compose; export default compose; export type { Container, Publisher, State } from './list-containers.js'; //# sourceMappingURL=docker-compose-testkit.d.ts.map