import { z } from 'zod';
declare const AzureQueueConfigSchema: z.ZodEffects<z.ZodObject<{
    connectionString: z.ZodOptional<z.ZodString>;
    namespaceName: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    connectionString?: string;
    namespaceName?: string;
}, {
    connectionString?: string;
    namespaceName?: string;
}>, {
    connectionString?: string;
    namespaceName?: string;
}, {
    connectionString?: string;
    namespaceName?: string;
}>;
declare const QueueOperationResultSchema: 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 AzureQueueConfig = z.infer<typeof AzureQueueConfigSchema>;
type QueueOperationResult = z.infer<typeof QueueOperationResultSchema>;
export declare class AzureQueueTools {
    private serviceBusClient;
    private adminClient;
    private config;
    constructor(config: AzureQueueConfig);
    listQueues(): Promise<QueueOperationResult>;
    createQueue(queueName: string, options?: {
        maxSizeInMegabytes?: number;
        defaultMessageTimeToLive?: string;
        lockDuration?: string;
        requiresDuplicateDetection?: boolean;
        requiresSession?: boolean;
        deadLetteringOnMessageExpiration?: boolean;
    }): Promise<QueueOperationResult>;
    deleteQueue(queueName: string): Promise<QueueOperationResult>;
    sendMessage(queueName: string, messageBody: string, options?: {
        messageId?: string;
        correlationId?: string;
        label?: string;
        timeToLive?: number;
        sessionId?: string;
        userProperties?: Record<string, any>;
    }): Promise<QueueOperationResult>;
    receiveMessage(queueName: string, options?: {
        maxMessageCount?: number;
        maxWaitTimeInMs?: number;
    }): Promise<QueueOperationResult>;
    peekMessage(queueName: string, options?: {
        maxMessageCount?: number;
    }): Promise<QueueOperationResult>;
    getQueueProperties(queueName: string): Promise<QueueOperationResult>;
    close(): Promise<void>;
}
export {};
