import { z } from 'zod';
declare const AzureBlobConfigSchema: z.ZodEffects<z.ZodObject<{
    connectionString: z.ZodOptional<z.ZodString>;
    accountName: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    accountName?: string;
    connectionString?: string;
}, {
    accountName?: string;
    connectionString?: string;
}>, {
    accountName?: string;
    connectionString?: string;
}, {
    accountName?: string;
    connectionString?: string;
}>;
declare const BlobOperationResultSchema: z.ZodObject<{
    success: z.ZodBoolean;
    data: z.ZodOptional<z.ZodAny>;
    error: z.ZodOptional<z.ZodString>;
    errorType: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    error?: string;
    data?: any;
    errorType?: string;
    success?: boolean;
}, {
    error?: string;
    data?: any;
    errorType?: string;
    success?: boolean;
}>;
type AzureBlobConfig = z.infer<typeof AzureBlobConfigSchema>;
type BlobOperationResult = z.infer<typeof BlobOperationResultSchema>;
export declare class AzureBlobTools {
    private blobServiceClient;
    private config;
    constructor(config: AzureBlobConfig);
    listContainers(): Promise<BlobOperationResult>;
    createContainer(containerName: string, options?: {
        publicAccess?: 'container' | 'blob';
    }): Promise<BlobOperationResult>;
    deleteContainer(containerName: string): Promise<BlobOperationResult>;
    listBlobs(containerName: string, prefix?: string): Promise<BlobOperationResult>;
    uploadBlob(containerName: string, blobName: string, data: string | Buffer, options?: {
        contentType?: string;
        metadata?: Record<string, string>;
        overwrite?: boolean;
    }): Promise<BlobOperationResult>;
    downloadBlob(containerName: string, blobName: string): Promise<BlobOperationResult>;
    deleteBlob(containerName: string, blobName: string): Promise<BlobOperationResult>;
    getBlobProperties(containerName: string, blobName: string): Promise<BlobOperationResult>;
    private streamToBuffer;
}
export {};
