import { type IssueEnvelope, type NormalizedIssueEnvelope } from './types.js';
export interface TrelloAdapterConfig {
    apiKey?: string;
    apiToken?: string;
    boardId?: string;
}
/**
 * Normalize a raw Trello API card into a canonical IssueEnvelope.
 */
export declare function normalizeTrelloCard(rawCard: unknown, listName?: string): IssueEnvelope;
/**
 * Normalize a raw Trello card into a PMO-ready NormalizedIssueEnvelope.
 */
export declare function normalizeTrelloCardToEnvelope(rawCard: unknown, listName?: string): NormalizedIssueEnvelope;
/**
 * Build a PMO ticket description from a NormalizedIssueEnvelope.
 */
export declare function buildTrelloTicketDescription(envelope: NormalizedIssueEnvelope): string;
/**
 * Build ticket metadata from a NormalizedIssueEnvelope for traceability.
 */
export declare function buildTrelloMetadata(envelope: NormalizedIssueEnvelope): Record<string, string>;
/**
 * Build a spawn context message from a NormalizedIssueEnvelope.
 */
export declare function buildTrelloSpawnContextMessage(envelope: NormalizedIssueEnvelope, additionalMessage?: string): string;
/**
 * Build a CLI command string for selecting a specific Trello card.
 */
export declare function buildTrelloCardChoiceCommand(cardId: string, projectId?: string): string;
/**
 * Fetch a single Trello card by its ID and normalize it.
 */
export declare function getTrelloCardById(configInput: TrelloAdapterConfig, cardId: string, options?: {
    fetchImpl?: typeof fetch;
}): Promise<NormalizedIssueEnvelope | null>;
/**
 * Check if Trello is configured via environment variables.
 */
export declare function isTrelloConfiguredFromEnv(config?: TrelloAdapterConfig): boolean;
/**
 * Fetch and normalize Trello cards from a board into NormalizedIssueEnvelopes.
 */
export declare function listTrelloCards(configInput: TrelloAdapterConfig, options?: {
    limit?: number;
    query?: string;
    fetchImpl?: typeof fetch;
}): Promise<NormalizedIssueEnvelope[]>;
/**
 * Import a Trello card into PMO as a linked ticket.
 */
export declare function importTrelloCardToPmo(storage: {
    listTickets(projectId: string): Promise<Array<{
        id: string;
        metadata?: Record<string, string>;
    }>>;
    createTicket(projectId: string, input: {
        title: string;
        description: string;
        priority?: string;
        category?: string;
        labels: string[];
        metadata: Record<string, string>;
    }): Promise<{
        id: string;
    }>;
    updateTicket(ticketId: string, input: {
        title: string;
        description: string;
        priority?: string;
        category?: string;
        labels: string[];
        metadata: Record<string, string>;
    }): Promise<{
        id: string;
    }>;
}, projectId: string, envelope: NormalizedIssueEnvelope): Promise<{
    ticketId: string;
    created: boolean;
}>;
