import type { FileChange, GitProvider, Issue, IssueOptions, PullRequest, PullRequestOptions } from '../types';
export declare class GitLabProvider implements GitProvider {
  constructor(token: string, projectId: string);
  branchExists(branchName: string): Promise<boolean>;
  createBranch(branchName: string, baseBranch: string): Promise<void>;
  commitChanges(branchName: string, message: string, files: FileChange[], _baseBranch?: string): Promise<void>;
  createPullRequest(options: PullRequestOptions): Promise<PullRequest>;
  getPullRequests(state?: 'open' | 'closed' | 'all'): Promise<PullRequest[]>;
  updatePullRequest(prNumber: number, _options: Partial<PullRequestOptions>): Promise<PullRequest>;
  closePullRequest(prNumber: number): Promise<void>;
  createComment(prNumber: number, comment: string): Promise<void>;
  mergePullRequest(prNumber: number, strategy?: 'merge' | 'squash' | 'rebase'): Promise<void>;
  deleteBranch(branchName: string): Promise<void>;
  createIssue(options: IssueOptions): Promise<Issue>;
  getIssues(state?: 'open' | 'closed' | 'all'): Promise<Issue[]>;
  updateIssue(issueNumber: number, _options: Partial<IssueOptions>): Promise<Issue>;
  closeIssue(issueNumber: number): Promise<void>;
  unpinIssue(_issueNumber: number): Promise<void>;
}
