import { SelectOptionNormalized } from '@prefecthq/prefect-design';
import { BaseJobTemplateRequest } from '../models/api/WorkPoolRequest';
import { ObjectLevelCan } from '../models/ObjectLevelCan';
import { WorkPoolStatus } from '../models/WorkPoolStatus';
export interface IWorkPool {
    readonly id: string;
    created: Date;
    updated: Date;
    name: string;
    description: string | null;
    type: string;
    isPaused: boolean;
    isPushPool: boolean;
    isMexPool: boolean;
    defaultQueueId: string;
    concurrencyLimit: number | null;
    baseJobTemplate: BaseJobTemplateRequest;
    status: WorkPoolStatus | null;
    can: ObjectLevelCan<'work_pool'>;
}
export declare class WorkPool implements IWorkPool {
    readonly id: string;
    readonly kind = "workPool";
    created: Date;
    updated: Date;
    name: string;
    description: string | null;
    type: string;
    isPaused: boolean;
    isPushPool: boolean;
    isMexPool: boolean;
    defaultQueueId: string;
    concurrencyLimit: number | null;
    baseJobTemplate: BaseJobTemplateRequest;
    status: WorkPoolStatus | null;
    can: ObjectLevelCan<'work_pool'>;
    constructor(workPool: IWorkPool);
    get typeLabel(): string;
}
export type WorkPoolFormValues = {
    name?: string;
    description?: string | null;
    type?: string;
    isPaused?: boolean;
    concurrencyLimit?: number | null;
    baseJobTemplate?: Record<string, unknown>;
};
export type WorkPoolTypeSelectOption = SelectOptionNormalized & {
    logoUrl: string;
    description: string;
    isBeta: boolean;
};
