import { ILogService } from '../../log/common/logService';
import { IFetcherService } from '../../networking/common/fetcherService';
import { ITelemetryService } from '../../telemetry/common/telemetry';
export interface PullRequestSearchItem {
    id: string;
    number: number;
    title: string;
    state: string;
    url: string;
    createdAt: string;
    updatedAt: string;
    author: {
        login: string;
    } | null;
    repository: {
        owner: {
            login: string;
        };
        name: string;
    };
    additions: number;
    deletions: number;
    fullDatabaseId: number;
    headRefOid: string;
    baseRefOid?: string;
    body: string;
}
export interface PullRequestSearchResult {
    search: {
        nodes: PullRequestSearchItem[];
        pageInfo: {
            hasNextPage: boolean;
            endCursor: string | null;
        };
        issueCount: number;
    };
}
export interface SessionInfo {
    id: string;
    name: string;
    user_id: number;
    agent_id: number;
    logs: string;
    logs_blob_id: string;
    state: 'completed' | 'in_progress' | 'failed' | 'queued';
    owner_id: number;
    repo_id: number;
    resource_type: string;
    resource_id: number;
    last_updated_at: string;
    created_at: string;
    completed_at: string;
    event_type: string;
    workflow_run_id: number;
    premium_requests: number;
    error: string | null;
    resource_global_id: string;
}
export interface PullRequestComment {
    id: string;
    body: string;
    createdAt: string;
    author: {
        login: string;
    };
    url: string;
}
export declare function makeGitHubAPIRequest(fetcherService: IFetcherService, logService: ILogService, telemetry: ITelemetryService, host: string, routeSlug: string, method: 'GET' | 'POST', token: string | undefined, body?: {
    [key: string]: any;
}, version?: string, type?: 'json' | 'text', userAgent?: string): Promise<any>;
export declare function makeGitHubGraphQLRequest(fetcherService: IFetcherService, logService: ILogService, telemetry: ITelemetryService, host: string, query: string, token: string | undefined, variables?: {
    [key: string]: any;
}): Promise<any>;
export declare function makeSearchGraphQLRequest(fetcherService: IFetcherService, logService: ILogService, telemetry: ITelemetryService, host: string, token: string | undefined, searchQuery: string, first?: number): Promise<PullRequestSearchItem[]>;
export declare function getPullRequestFromGlobalId(fetcherService: IFetcherService, logService: ILogService, telemetry: ITelemetryService, host: string, token: string | undefined, globalId: string): Promise<PullRequestSearchItem | null>;
export declare function addPullRequestCommentGraphQLRequest(fetcherService: IFetcherService, logService: ILogService, telemetry: ITelemetryService, host: string, token: string | undefined, pullRequestId: string, commentBody: string): Promise<PullRequestComment | null>;
export declare function closePullRequest(fetcherService: IFetcherService, logService: ILogService, telemetry: ITelemetryService, host: string, token: string | undefined, owner: string, repo: string, pullNumber: number): Promise<boolean>;
export declare function makeGitHubAPIRequestWithPagination(fetcherService: IFetcherService, logService: ILogService, host: string, path: string, nwo: string, token: string): Promise<SessionInfo[]>;
//# sourceMappingURL=githubAPI.d.ts.map