import { z } from 'zod'; import { type ConfigOf, type RedactedConfig } from '../secrets.ts'; export type S3BrowserOperation = 'GET' | 'PUT' | 'HEAD' | 'DELETE' | 'LIST' | 'COPY'; export interface S3BrowserSignOptions { contentType?: string; ttlSec?: number; listPrefix?: string; listDelimiter?: string; listContinuationToken?: string; copySource?: string; } export type S3BrowserPresignedUrlProvider = (path: string, operation: S3BrowserOperation, options?: S3BrowserSignOptions) => Promise; export interface S3HttpAgents { httpAgent: unknown; httpsAgent: unknown; } /** * Runtime-supplied transport agents (Node proxy support). Called once per * client so each client owns its own agents: every S3 op destroys its client * when it finishes, and a shared agent pair would tear down sockets that * concurrent ops are still using. */ export type S3HttpAgentProvider = () => S3HttpAgents; export declare const S3ConfigSchema: z.ZodObject<{ bucket: z.ZodString; region: z.ZodOptional; endpoint: z.ZodOptional; accessKeyId: z.ZodOptional; secretAccessKey: z.ZodOptional; sessionToken: z.ZodOptional; forcePathStyle: z.ZodOptional; timeoutMs: z.ZodOptional; presignedUrlProvider: z.ZodOptional>; httpAgentProvider: z.ZodOptional>; defaultContentType: z.ZodOptional; keyPrefix: z.ZodOptional; }, z.core.$strip>; export interface S3Config { bucket: string; region?: string; endpoint?: string; accessKeyId?: string; secretAccessKey?: string; sessionToken?: string; profile?: string; forcePathStyle?: boolean; timeoutMs?: number; presignedUrlProvider?: S3BrowserPresignedUrlProvider; httpAgentProvider?: S3HttpAgentProvider; defaultContentType?: string; keyPrefix?: string; } export declare function normalizeKeyPrefix(v: string | undefined): string | undefined; export type S3ConfigRedacted = RedactedConfig, 'accessKeyId' | 'secretAccessKey' | 'sessionToken' | 'presignedUrlProvider' | 'httpAgentProvider'>; export declare function redactConfig(config: S3Config): S3ConfigRedacted; //# sourceMappingURL=config.d.ts.map