import { PDMQInitialOptions } from "../interfaces/initial-options.interface";
import { PDMQTask } from "../interfaces/task.interface";
import { PDMQConsumer } from "../interfaces/consumer.interface";
export declare class PDMQClient {
    private InitialOptions;
    private redisClient;
    private redisService;
    private taskService;
    constructor(InitialOptions: PDMQInitialOptions);
    private init;
    disconnect(): boolean;
    /**
     * Get Execution Result
     */
    getExecutionResult(execId: string, options?: {
        remove?: boolean;
    }): Promise<{
        res?: any;
        error?: any;
        success: boolean;
        task: PDMQTask;
    } | null>;
    /**
     * Get instant processing task
     * @return {PDMQTask | null} the processing instant task
     */
    getProcessingTask(): Promise<PDMQTask[] | null>;
    /**
     * List of all consumers
     */
    getConsumers(): Promise<PDMQConsumer[]>;
    /**
     * Total number of consumer processors
     */
    getCurrentConsumersCount(): Promise<number>;
    /**
     * Add Task
     *
     * @param task
     * @returns {PDMQTask} PDMQTask
     */
    addTask(task: PDMQTask): Promise<PDMQTask>;
    /**
     * Fetch All Tasks
     *
     * @returns {PDMQTask[]} PDMQTask[]
     */
    findAllTasks(): Promise<PDMQTask[]>;
    /**
     * List a range of tasks
     *
     * @param from ISO Datetime String
     * @param to ISO Datetime String
     */
    findTask(from: string, to: string): Promise<PDMQTask[]>;
    findInstantTask(): Promise<PDMQTask[]>;
    /**
     * Fetch all stored task
     *
     * @returns
     */
    findStoredTask(): Promise<PDMQTask[]>;
    /**
     * Get stored task by id
     *
     * @param taskId
     * @returns
     */
    findStoredTaskById(taskId: string): Promise<PDMQTask>;
    updateTask(task: PDMQTask): Promise<PDMQTask>;
    deleteTask(taskId: string): Promise<void>;
    runStoredTask(storedTaskId: string): Promise<PDMQTask>;
}
