/**
 * JIRA Provider Adapter
 *
 * Implements ProviderAdapter for JIRA Cloud REST API v3.
 */
import { type ProviderAdapter, type ExternalRef, type UserStoryData, type FeatureData, type FieldChanges, type ExternalChange, type ItemState, type ExpectedState, type ReconcileResult, type DetectedHierarchy, type Label, type LabelConfig } from '../engine.js';
export interface JiraAdapterConfig {
    domain: string;
    email: string;
    apiToken: string;
    projectKey: string;
    closedStatus?: string;
}
export declare class JiraAdapter implements ProviderAdapter {
    readonly platform: "jira";
    readonly suffix: "J";
    private domain;
    private email;
    private apiToken;
    private projectKey;
    private baseUrl;
    private closedStatus;
    constructor(config: JiraAdapterConfig);
    testConnection(): Promise<{
        ok: boolean;
        error?: string;
    }>;
    createIssue(story: UserStoryData, feature: FeatureData): Promise<ExternalRef>;
    updateIssue(ref: ExternalRef, changes: FieldChanges): Promise<void>;
    closeIssue(ref: ExternalRef, comment?: string): Promise<void>;
    reopenIssue(ref: ExternalRef): Promise<void>;
    pullChanges(since?: Date): Promise<ExternalChange[]>;
    getIssueState(ref: ExternalRef): Promise<ItemState>;
    applyLabels(ref: ExternalRef, labels: Label[]): Promise<void>;
    detectHierarchy(): Promise<DetectedHierarchy>;
    reconcile(items: ExpectedState[]): Promise<ReconcileResult>;
    generateLabels(config: LabelConfig): Label[];
    private buildDescription;
    private transitionIssue;
    private addComment;
    private extractUsId;
    private apiRequest;
}
//# sourceMappingURL=jira.d.ts.map