import { QbraidSession, QbraidClient } from '@qbraid-core/base';
import { QbraidClientV1, QbraidSessionV1 } from '@qbraid-core/base';
import { QuantumJobResponse, JobQueryParams, DeleteSingleJobResponse, DeleteMultipleJobsResponse, CancelResponse, JobQueryParamsV1, DeleteJobResponseV1, DeleteMultipleJobsResponseV1, CancelJobResponseV1, JobResult, ProgramData, QuantumJobsResponseV1, JobsStatusesResponse, GroupListParams, GroupListResponse, GroupJobsResponse, GroupOperationResponse, DeleteGroupResponseV1 } from './types';
export declare class QuantumJobsClient extends QbraidClient {
    constructor(session: QbraidSession);
    getJobs(params?: JobQueryParams): Promise<QuantumJobResponse>;
    deleteJob(jobId: string): Promise<DeleteSingleJobResponse>;
    deleteMultipleJobs(jobIdArray: string[]): Promise<DeleteMultipleJobsResponse>;
    cancelJobs(jobId: string): Promise<CancelResponse>;
}
export declare class QuantumJobsClientV1 extends QbraidClientV1 {
    constructor(session: QbraidSessionV1);
    /**
     * Get jobs from the V1 API.
     * @param params - Optional query parameters to filter jobs
     * @returns Array of PlatformJob objects
     */
    getJobs(params?: JobQueryParamsV1): Promise<QuantumJobsResponseV1>;
    /**
     * Delete a single job by its QRN.
     * @param jobQrn - The job QRN to delete
     * @returns Delete response
     */
    deleteJob(jobQrn: string): Promise<DeleteJobResponseV1>;
    /**
     * Delete multiple jobs by their QRNs.
     * @param jobQrns - Array of job QRNs to delete
     * @returns Delete response with lists of deleted and failed jobs
     */
    deleteMultipleJobs(jobQrns: string[]): Promise<DeleteMultipleJobsResponseV1>;
    /**
     * Cancel a job by its QRN.
     * @param jobQrn - The job QRN to cancel
     * @returns Cancel response
     */
    cancelJob(jobQrn: string): Promise<CancelJobResponseV1>;
    /**
     * Get the result of a completed job.
     * @param jobQrn - The job QRN to get results for
     * @returns Job result with status, cost, timestamps, and result data
     */
    getJobResult(jobQrn: string): Promise<JobResult>;
    /**
     * Get the program/circuit data for a job.
     * @param jobQrn - The job QRN to get program for
     * @returns Program data with format and circuit string
     */
    getJobProgram(jobQrn: string): Promise<ProgramData>;
    /**
     * Get the status list of all jobs.
     * @returns Job status response with counts of jobs in various statuses
     */
    getJobsStatuses(): Promise<JobsStatusesResponse>;
    /**
     * Get all job groups.
     * @param params - Optional query parameters to filter groups
     * @returns List of group jobs
     */
    getGroups(params?: GroupListParams): Promise<GroupListResponse>;
    /**
     * Get all jobs within a group.
     * @param groupQrn - The group QRN to get jobs for
     * @returns List of platform jobs in the group
     */
    getGroupJobs(groupQrn: string): Promise<GroupJobsResponse>;
    /**
     * Delete a job group.
     * @param groupQrn - The group QRN to delete
     * @returns Delete response
     */
    deleteGroup(groupQrn: string): Promise<DeleteGroupResponseV1>;
    /**
     * Cancel a job group.
     * @param groupQrn - The group QRN to cancel
     * @returns Updated group job
     */
    cancelGroup(groupQrn: string): Promise<GroupOperationResponse>;
}
