import type { OperationRule, ScopeResolver } from '../access.js'; export type BucketBackendInput = { s3: { bucket: string; region?: string; endpoint?: string; publicUrl?: string; }; } | { local: string; }; export type BucketConfigInput = { visibility?: 'public' | 'private'; access?: { create?: OperationRule; get?: OperationRule; delete?: OperationRule; }; upload?: { maxSize?: string | number; accept?: string[]; }; transforms?: boolean; scope?: { read?: ScopeResolver; write?: ScopeResolver; }; quota?: { perUser?: string | number; perScope?: string | number; }; } & Partial; export type StorageConfigInput = { s3?: true | { endpoint?: string; }; local?: true | string; defaultBucket?: string; buckets?: Record; }; export type ResolvedBackend = { type: 'local'; path: string; } | { type: 's3'; bucket: string; region: string; endpoint?: string; accessKeyId: string; secretAccessKey: string; publicUrl?: string; }; export type ResolvedBucket = { name: string; backend: ResolvedBackend; visibility: 'public' | 'private'; access: { create: OperationRule; get: OperationRule; delete: OperationRule; }; upload?: { maxSizeBytes?: number; accept?: string[]; }; transforms: boolean; readScope?: ScopeResolver; writeScope?: ScopeResolver; quota?: { perUserBytes?: number; perScopeBytes?: number; }; }; export type ResolvedStorageBuckets = { defaultBucket: string; buckets: Map; }; export declare function parseSize(value: string | number): number; export declare function resolveBuckets(input: StorageConfigInput | undefined, env?: Record): ResolvedStorageBuckets; //# sourceMappingURL=buckets.d.ts.map