///
///
///
import type { FileMetadata } from '@google-cloud/storage';
import type { ReadStream } from 'node:fs';
import { z } from 'zod';
declare const fileSchema: z.ZodObject<{
name: z.ZodString;
alternativeText: z.ZodOptional;
caption: z.ZodOptional;
width: z.ZodOptional;
height: z.ZodOptional;
formats: z.ZodOptional>;
hash: z.ZodString;
ext: z.ZodOptional;
mime: z.ZodString;
size: z.ZodNumber;
sizeInBytes: z.ZodNumber;
url: z.ZodString;
previewUrl: z.ZodOptional;
path: z.ZodOptional;
provider: z.ZodOptional;
provider_metadata: z.ZodOptional>;
stream: z.ZodOptional;
buffer: z.ZodOptional;
}, {}, {}>;
export type File = z.infer & {
stream?: ReadStream;
buffer?: Buffer;
};
export type FileAttributes = {
contentType: string;
gzip: Options['gzip'];
metadata: FileMetadata;
public?: boolean;
};
export declare const serviceAccountSchema: z.ZodObject<{
project_id: z.ZodString;
client_email: z.ZodString;
private_key: z.ZodString;
}, {}, {}>;
export type ServiceAccount = z.infer;
type MetadataFn = (file: File) => FileMetadata;
type GetContentTypeFn = (file: File) => string;
type GenerateUploadFileNameFn = (basePath: string, file: File) => Promise | string;
export declare const optionsSchema: z.ZodObject<{
serviceAccount: z.ZodOptional, z.ZodObject<{
project_id: z.ZodString;
client_email: z.ZodString;
private_key: z.ZodString;
}, {}, {}>>>;
bucketName: z.ZodString;
baseUrl: z.ZodDefault;
basePath: z.ZodDefault;
publicFiles: z.ZodDefault]>>;
uniform: z.ZodDefault]>>;
skipCheckBucket: z.ZodDefault]>>;
gzip: z.ZodDefault]>, z.ZodLiteral<"auto">]>>;
cacheMaxAge: z.ZodDefault;
expires: z.ZodDefault>;
metadata: z.ZodOptional>;
getContentType: z.ZodDefault>>;
generateUploadFileName: z.ZodDefault>>;
}, {}, {}>;
export type Options = z.infer;
export type DefaultOptions = Partial> & {
bucketName: string;
serviceAccount?: ServiceAccount | string;
};
export {};
//# sourceMappingURL=types.d.ts.map