import { FlowRun, WorkPoolQueueCreate, WorkPoolQueueEdit } from '../models';
import { WorkPoolQueuesFilter } from '../models/Filters';
import { WorkPoolQueue } from '../models/WorkPoolQueue';
import { BatchProcessor } from '../services/BatchProcessor';
import { WorkspaceApi } from '../services/WorkspaceApi';
/**
 * API for interacting directly with work queues at a workspace level.
 * Compared to the `WorkspaceWorkPoolQueuesApi`, this API is older and works
 * with queues as flattened, top-level objects rather than as children of work pools.
 * Once upon a time, work queues roamed free throughout the lands of Prefect,
 * but everything changed when the work pools attacked.
 *
 * Should generally use the `WorkspaceWorkPoolQueuesApi` instead, but in case you need
 * to interact with work queues directly (without a work pool), this API is available.
 *
 * For example, this API supports getting a work queue directly by id without the
 * need to know the parent work pool.
 */
export declare class WorkspaceWorkQueuesApi extends WorkspaceApi {
    protected routePrefix: string;
    protected readonly idBatcher: BatchProcessor<string, WorkPoolQueue>;
    protected readonly nameBatcher: BatchProcessor<string, WorkPoolQueue>;
    getWorkQueue(workQueueId: string): Promise<WorkPoolQueue>;
    getWorkQueueByName(workQueueName: string): Promise<WorkPoolQueue>;
    getWorkQueues(filter: WorkPoolQueuesFilter): Promise<WorkPoolQueue[]>;
    /** @deprecated Prefer `WorkspaceWorkPoolQueuesApi.createWorkPoolQueue` */
    createWorkQueue(request: WorkPoolQueueCreate): Promise<WorkPoolQueue>;
    /** @deprecated Prefer `WorkspaceWorkPoolQueuesApi.pauseWorkPoolQueue` */
    pauseWorkQueue(id: string): Promise<void>;
    /** @deprecated Prefer `WorkspaceWorkPoolQueuesApi.resumeWorkPoolQueue` */
    resumeWorkQueue(id: string): Promise<void>;
    /** @deprecated Prefer `WorkspaceWorkPoolQueuesApi.updateWorkPoolQueue` */
    updateWorkQueue(id: string, request: WorkPoolQueueEdit): Promise<void>;
    /** @deprecated Prefer `WorkspaceWorkPoolQueuesApi.deleteWorkPoolQueue` */
    deleteWorkQueue(id: string): Promise<void>;
    getRuns(id: string): Promise<FlowRun[]>;
}
