import { IStateStorageAdapter } from '../interfaces/storage-adapter.interface';
import { CloudTaskMQConfig, QueueConfig } from '../interfaces/config.interface';
import { AddTaskOptions, AddTaskResult } from '../interfaces/task.interface';
import { EventEmitter } from 'events';
/**
 * Producer service for adding tasks to queues
 */
export declare class ProducerService extends EventEmitter {
    private readonly config;
    private readonly storageAdapter;
    private client;
    private queueConfigs;
    private projectId;
    private location;
    private defaultProcessorUrl?;
    private rateLimiterService;
    constructor(config: CloudTaskMQConfig, storageAdapter: IStateStorageAdapter);
    /**
     * Initialize the producer service
     */
    initialize(): Promise<void>;
    /**
     * Add a task to a queue
     */
    addTask<T = any>(queueName: string, data: T, options?: AddTaskOptions): Promise<AddTaskResult>;
    /**
     * Add multiple tasks as a chain
     */
    addChain<T = any>(queueName: string, tasks: Array<{
        data: T;
        options?: AddTaskOptions;
    }>, chainOptions?: {
        id?: string;
        waitForPrevious?: boolean;
    }): Promise<AddTaskResult[]>;
    /**
     * Get queue configuration
     */
    getQueueConfig(queueName: string): QueueConfig | undefined;
    /**
     * List all configured queues
     */
    getQueues(): string[];
    /**
     * Create missing queues in Google Cloud Tasks
     */
    private createMissingQueues;
    /**
     * Create a Cloud Task
     */
    private createCloudTask;
    /**
     * Close the producer service
     */
    close(): Promise<void>;
}
