export interface QueueAttributes {
    QueueUrl: string;
    QueueArn?: string;
    ApproximateNumberOfMessages?: string;
    ApproximateNumberOfMessagesNotVisible?: string;
    ApproximateNumberOfMessagesDelayed?: string;
    CreatedTimestamp?: string;
    LastModifiedTimestamp?: string;
    VisibilityTimeout?: string;
    MaximumMessageSize?: string;
    MessageRetentionPeriod?: string;
    DelaySeconds?: string;
    ReceiveMessageWaitTimeSeconds?: string;
    FifoQueue?: string;
    ContentBasedDeduplication?: string;
}
export interface CreateQueueOptions {
    queueName: string;
    fifo?: boolean;
    visibilityTimeout?: number;
    messageRetentionPeriod?: number;
    delaySeconds?: number;
    maxMessageSize?: number;
    receiveMessageWaitTime?: number;
    deadLetterTargetArn?: string;
    maxReceiveCount?: number;
    contentBasedDeduplication?: boolean;
    tags?: Record<string, string>;
}
export interface Message {
    MessageId: string;
    ReceiptHandle: string;
    Body: string;
    Attributes?: Record<string, string>;
    MessageAttributes?: Record<string, any>;
}
/**
 * SQS queue management using direct API calls
 */
export declare class SQSClient {
    private client;
    private region;
    constructor(region?: string, profile?: string);
    /**
     * Create a new SQS queue
     */
    createQueue(options: CreateQueueOptions): Promise<{
        QueueUrl: string;
    }>;
    /**
     * List all queues
     */
    listQueues(prefix?: string): Promise<{
        QueueUrls: string[];
    }>;
    /**
     * Get queue attributes
     */
    getQueueAttributes(queueUrl: string): Promise<{
        Attributes: Record<string, string>;
    }>;
    /**
     * Get queue URL by name
     */
    getQueueUrl(queueName: string): Promise<{
        QueueUrl: string;
    }>;
    /**
     * Delete a queue
     */
    deleteQueue(queueUrl: string): Promise<void>;
    /**
     * Purge queue (delete all messages)
     */
    purgeQueue(queueUrl: string): Promise<void>;
    /**
     * Send message to queue
     */
    sendMessage(options: {
        queueUrl: string;
        messageBody: string;
        delaySeconds?: number;
        messageGroupId?: string;
        messageDeduplicationId?: string;
    }): Promise<{
        MessageId: string;
    }>;
    /**
     * Receive messages from queue
     */
    receiveMessages(options: {
        queueUrl: string;
        maxMessages?: number;
        visibilityTimeout?: number;
        waitTimeSeconds?: number;
    }): Promise<{
        Messages: Message[];
    }>;
    /**
     * Delete message from queue
     */
    deleteMessage(queueUrl: string, receiptHandle: string): Promise<void>;
}
