import { type ExternalIssueAdapter, type IssueEnvelope } from './types.js';
type FetchIssueByKey = (key: string) => Promise<unknown>;
type FetchIssuesByQuery = (query: Record<string, unknown>) => Promise<unknown[]>;
interface AdapterFetchers {
    fetchByKey?: FetchIssueByKey;
    fetchByQuery?: FetchIssuesByQuery;
}
export declare class LinearIssueAdapter implements ExternalIssueAdapter {
    readonly source: "linear";
    private readonly fetchByKeyImpl?;
    private readonly fetchByQueryImpl?;
    constructor(fetchers?: AdapterFetchers);
    normalize(raw: unknown): IssueEnvelope;
    fetchByKey(key: string): Promise<IssueEnvelope>;
    fetchByQuery(query: Record<string, unknown>): Promise<IssueEnvelope[]>;
}
export declare class JiraIssueAdapter implements ExternalIssueAdapter {
    readonly source: "jira";
    private readonly fetchByKeyImpl?;
    private readonly fetchByQueryImpl?;
    constructor(fetchers?: AdapterFetchers);
    normalize(raw: unknown): IssueEnvelope;
    fetchByKey(key: string): Promise<IssueEnvelope>;
    fetchByQuery(query: Record<string, unknown>): Promise<IssueEnvelope[]>;
}
export {};
