import { GraphQLClient } from 'graphql-request';
import { IntegrationDefinitionsResponse, IntegrationInstancesResponse, IntegrationJobsResponse, IntegrationJobResponse, IntegrationEventsResponse, ListIntegrationInstancesSearchFilter, IntegrationJobStatus } from '../../types/jupiterone.js';
export declare class IntegrationService {
    private client;
    constructor(client: GraphQLClient);
    /**
     * Get integration definitions
     * @param cursor Optional cursor for pagination
     * @param includeConfig Whether to include configuration fields
     */
    getIntegrationDefinitions(cursor?: string, includeConfig?: boolean): Promise<IntegrationDefinitionsResponse['integrationDefinitions']>;
    /**
     * Get integration instances
     * @param definitionId Optional ID to filter instances by definition
     * @param cursor Optional cursor for pagination
     * @param limit Optional limit for number of instances to return
     * @param filter Optional search filter
     */
    getIntegrationInstances(definitionId?: string, cursor?: string, limit?: number, filter?: ListIntegrationInstancesSearchFilter): Promise<IntegrationInstancesResponse['integrationInstancesV2']>;
    /**
     * Get integration jobs
     * @param status Optional status to filter jobs
     * @param integrationInstanceId Optional ID to filter jobs by instance
     * @param integrationDefinitionId Optional ID to filter jobs by definition
     * @param integrationInstanceIds Optional array of instance IDs to filter jobs
     * @param cursor Optional cursor for pagination
     * @param size Optional size limit for number of jobs to return
     */
    getIntegrationJobs(status?: IntegrationJobStatus, integrationInstanceId?: string, integrationDefinitionId?: string, integrationInstanceIds?: string[], cursor?: string, size?: number): Promise<IntegrationJobsResponse['integrationJobs']>;
    /**
     * Get details for a specific integration job
     * @param integrationJobId ID of the job to get
     * @param integrationInstanceId ID of the instance the job belongs to
     */
    getIntegrationJob(integrationJobId: string, integrationInstanceId: string): Promise<IntegrationJobResponse['integrationJob']>;
    /**
     * Get events for a specific integration job
     * @param jobId ID of the job to get events for
     * @param integrationInstanceId ID of the instance the job belongs to
     * @param cursor Optional cursor for pagination
     * @param size Optional size limit for number of events to return
     */
    getIntegrationEvents(jobId: string, integrationInstanceId: string, cursor?: string, size?: number): Promise<IntegrationEventsResponse['integrationEvents']>;
}
//# sourceMappingURL=integration-service.d.ts.map