import * as z from 'zod';
import type { ChainContext } from './context';
import type { ToolCommandExecutionOptions } from './core/tool-executor';
export declare const volumeMappingSchema: z.ZodUnion<readonly [z.ZodObject<{
    containerPath: z.ZodString;
    type: z.ZodLiteral<"host">;
    hostPath: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    containerPath: z.ZodString;
    type: z.ZodLiteral<"isolate">;
    name: z.ZodString;
    shared: z.ZodOptional<z.ZodBoolean>;
    locked: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>]>;
export type VolumeMapping = z.infer<typeof volumeMappingSchema>;
export interface EnvironmentVariable {
    name: string;
    value: string;
}
export interface Tool {
    name: string;
    privileged?: boolean;
    defaultVolumes?: readonly VolumeMapping[];
    defaultEnv?: readonly EnvironmentVariable[];
    getSecondaryVersion?: (args: {
        cwd: string;
    }) => Promise<string>;
    preExecute?: (context: ChainContext<string>, options: ToolCommandExecutionOptions) => Promise<void>;
}
export declare enum DockerRegistryMirror {
    PUBLIC_GAR = "public-gar"
}
export interface Image {
    name: string;
    versions: Record<string, string>;
    dependencies?: Record<string, string>;
    patch?: number;
    mirrorRegistries?: DockerRegistryMirror[];
}
export interface VersionCombination<TImageId> {
    images: Record<string, TImageId>;
    description?: string;
    stable?: boolean;
}
export declare const getImageDirectory: () => Promise<string>;
export declare const getRegistry: () => Promise<string>;
//# sourceMappingURL=config.d.ts.map