import { CreateIssueParams, UpdateIssueParams, ListIssuesParams, AddIssueCommentParams, GetIssueParams } from '../types/index.js';
/**
 * Service for managing GitHub issues
 */
export declare class GitHubIssueService {
    private octokit;
    /**
     * Create a new GitHub Issue Service
     * @param token GitHub API token
     */
    constructor(token: string);
    /**
     * Create a new issue in a GitHub repository
     * @param params Issue creation parameters
     * @returns The created issue
     */
    createIssue(params: CreateIssueParams): Promise<{
        id: number;
        node_id: string;
        url: string;
        repository_url: string;
        labels_url: string;
        comments_url: string;
        events_url: string;
        html_url: string;
        number: number;
        state: string;
        state_reason?: "completed" | "reopened" | "not_planned" | null;
        title: string;
        body?: string | null;
        user: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        labels: import("@octokit/openapi-types").OneOf<[string, {
            id?: number;
            node_id?: string;
            url?: string;
            name?: string;
            description?: string | null;
            color?: string | null;
            default?: boolean;
        }]>[];
        assignee: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        assignees?: import("@octokit/openapi-types").components["schemas"]["simple-user"][] | null;
        milestone: import("@octokit/openapi-types").components["schemas"]["nullable-milestone"];
        locked: boolean;
        active_lock_reason?: string | null;
        comments: number;
        pull_request?: {
            merged_at?: string | null;
            diff_url: string | null;
            html_url: string | null;
            patch_url: string | null;
            url: string | null;
        };
        closed_at: string | null;
        created_at: string;
        updated_at: string;
        draft?: boolean;
        closed_by?: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        body_html?: string;
        body_text?: string;
        timeline_url?: string;
        repository?: import("@octokit/openapi-types").components["schemas"]["repository"];
        performed_via_github_app?: import("@octokit/openapi-types").components["schemas"]["nullable-integration"];
        author_association: import("@octokit/openapi-types").components["schemas"]["author-association"];
        reactions?: import("@octokit/openapi-types").components["schemas"]["reaction-rollup"];
        sub_issues_summary?: import("@octokit/openapi-types").components["schemas"]["sub-issues-summary"];
    }>;
    /**
     * Update an existing issue in a GitHub repository
     * @param params Issue update parameters
     * @returns The updated issue
     */
    updateIssue(params: UpdateIssueParams): Promise<{
        id: number;
        node_id: string;
        url: string;
        repository_url: string;
        labels_url: string;
        comments_url: string;
        events_url: string;
        html_url: string;
        number: number;
        state: string;
        state_reason?: "completed" | "reopened" | "not_planned" | null;
        title: string;
        body?: string | null;
        user: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        labels: import("@octokit/openapi-types").OneOf<[string, {
            id?: number;
            node_id?: string;
            url?: string;
            name?: string;
            description?: string | null;
            color?: string | null;
            default?: boolean;
        }]>[];
        assignee: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        assignees?: import("@octokit/openapi-types").components["schemas"]["simple-user"][] | null;
        milestone: import("@octokit/openapi-types").components["schemas"]["nullable-milestone"];
        locked: boolean;
        active_lock_reason?: string | null;
        comments: number;
        pull_request?: {
            merged_at?: string | null;
            diff_url: string | null;
            html_url: string | null;
            patch_url: string | null;
            url: string | null;
        };
        closed_at: string | null;
        created_at: string;
        updated_at: string;
        draft?: boolean;
        closed_by?: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        body_html?: string;
        body_text?: string;
        timeline_url?: string;
        repository?: import("@octokit/openapi-types").components["schemas"]["repository"];
        performed_via_github_app?: import("@octokit/openapi-types").components["schemas"]["nullable-integration"];
        author_association: import("@octokit/openapi-types").components["schemas"]["author-association"];
        reactions?: import("@octokit/openapi-types").components["schemas"]["reaction-rollup"];
        sub_issues_summary?: import("@octokit/openapi-types").components["schemas"]["sub-issues-summary"];
    }>;
    /**
     * List issues in a GitHub repository
     * @param params Issue listing parameters
     * @returns List of issues
     */
    listIssues(params: ListIssuesParams): Promise<{
        id: number;
        node_id: string;
        url: string;
        repository_url: string;
        labels_url: string;
        comments_url: string;
        events_url: string;
        html_url: string;
        number: number;
        state: string;
        state_reason?: "completed" | "reopened" | "not_planned" | null;
        title: string;
        body?: string | null;
        user: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        labels: import("@octokit/openapi-types").OneOf<[string, {
            id?: number;
            node_id?: string;
            url?: string;
            name?: string;
            description?: string | null;
            color?: string | null;
            default?: boolean;
        }]>[];
        assignee: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        assignees?: import("@octokit/openapi-types").components["schemas"]["simple-user"][] | null;
        milestone: import("@octokit/openapi-types").components["schemas"]["nullable-milestone"];
        locked: boolean;
        active_lock_reason?: string | null;
        comments: number;
        pull_request?: {
            merged_at?: string | null;
            diff_url: string | null;
            html_url: string | null;
            patch_url: string | null;
            url: string | null;
        };
        closed_at: string | null;
        created_at: string;
        updated_at: string;
        draft?: boolean;
        closed_by?: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        body_html?: string;
        body_text?: string;
        timeline_url?: string;
        repository?: import("@octokit/openapi-types").components["schemas"]["repository"];
        performed_via_github_app?: import("@octokit/openapi-types").components["schemas"]["nullable-integration"];
        author_association: import("@octokit/openapi-types").components["schemas"]["author-association"];
        reactions?: import("@octokit/openapi-types").components["schemas"]["reaction-rollup"];
        sub_issues_summary?: import("@octokit/openapi-types").components["schemas"]["sub-issues-summary"];
    }[]>;
    /**
     * Get details of a specific issue
     * @param params Get issue parameters
     * @returns Issue details
     */
    getIssue(params: GetIssueParams): Promise<{
        id: number;
        node_id: string;
        url: string;
        repository_url: string;
        labels_url: string;
        comments_url: string;
        events_url: string;
        html_url: string;
        number: number;
        state: string;
        state_reason?: "completed" | "reopened" | "not_planned" | null;
        title: string;
        body?: string | null;
        user: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        labels: import("@octokit/openapi-types").OneOf<[string, {
            id?: number;
            node_id?: string;
            url?: string;
            name?: string;
            description?: string | null;
            color?: string | null;
            default?: boolean;
        }]>[];
        assignee: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        assignees?: import("@octokit/openapi-types").components["schemas"]["simple-user"][] | null;
        milestone: import("@octokit/openapi-types").components["schemas"]["nullable-milestone"];
        locked: boolean;
        active_lock_reason?: string | null;
        comments: number;
        pull_request?: {
            merged_at?: string | null;
            diff_url: string | null;
            html_url: string | null;
            patch_url: string | null;
            url: string | null;
        };
        closed_at: string | null;
        created_at: string;
        updated_at: string;
        draft?: boolean;
        closed_by?: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        body_html?: string;
        body_text?: string;
        timeline_url?: string;
        repository?: import("@octokit/openapi-types").components["schemas"]["repository"];
        performed_via_github_app?: import("@octokit/openapi-types").components["schemas"]["nullable-integration"];
        author_association: import("@octokit/openapi-types").components["schemas"]["author-association"];
        reactions?: import("@octokit/openapi-types").components["schemas"]["reaction-rollup"];
        sub_issues_summary?: import("@octokit/openapi-types").components["schemas"]["sub-issues-summary"];
    }>;
    /**
     * Add a comment to an issue
     * @param params Issue comment parameters
     * @returns The created comment
     */
    addIssueComment(params: AddIssueCommentParams): Promise<{
        id: number;
        node_id: string;
        url: string;
        body?: string;
        body_text?: string;
        body_html?: string;
        html_url: string;
        user: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        created_at: string;
        updated_at: string;
        issue_url: string;
        author_association: import("@octokit/openapi-types").components["schemas"]["author-association"];
        performed_via_github_app?: import("@octokit/openapi-types").components["schemas"]["nullable-integration"];
        reactions?: import("@octokit/openapi-types").components["schemas"]["reaction-rollup"];
    }>;
    /**
     * Close an issue
     * @param owner Repository owner
     * @param repo Repository name
     * @param issue_number Issue number
     * @returns The updated issue
     */
    closeIssue(owner: string, repo: string, issue_number: number): Promise<{
        id: number;
        node_id: string;
        url: string;
        repository_url: string;
        labels_url: string;
        comments_url: string;
        events_url: string;
        html_url: string;
        number: number;
        state: string;
        state_reason?: "completed" | "reopened" | "not_planned" | null;
        title: string;
        body?: string | null;
        user: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        labels: import("@octokit/openapi-types").OneOf<[string, {
            id?: number;
            node_id?: string;
            url?: string;
            name?: string;
            description?: string | null;
            color?: string | null;
            default?: boolean;
        }]>[];
        assignee: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        assignees?: import("@octokit/openapi-types").components["schemas"]["simple-user"][] | null;
        milestone: import("@octokit/openapi-types").components["schemas"]["nullable-milestone"];
        locked: boolean;
        active_lock_reason?: string | null;
        comments: number;
        pull_request?: {
            merged_at?: string | null;
            diff_url: string | null;
            html_url: string | null;
            patch_url: string | null;
            url: string | null;
        };
        closed_at: string | null;
        created_at: string;
        updated_at: string;
        draft?: boolean;
        closed_by?: import("@octokit/openapi-types").components["schemas"]["nullable-simple-user"];
        body_html?: string;
        body_text?: string;
        timeline_url?: string;
        repository?: import("@octokit/openapi-types").components["schemas"]["repository"];
        performed_via_github_app?: import("@octokit/openapi-types").components["schemas"]["nullable-integration"];
        author_association: import("@octokit/openapi-types").components["schemas"]["author-association"];
        reactions?: import("@octokit/openapi-types").components["schemas"]["reaction-rollup"];
        sub_issues_summary?: import("@octokit/openapi-types").components["schemas"]["sub-issues-summary"];
    }>;
}
