/** * TrelloConnector — polls Trello boards via native fetch. * Auth token format: "apiKey:token" stored in config.auth.token or TRELLO_TOKEN env var. * Emits kanban_card NormalizedItems for new/moved/updated cards. * * A card's operational state is more than its list: production boards track the * assignee and the revision round (e.g. a "初稿" / "1回修正" label) on the card * itself. The poller therefore ingests labels and resolved member names, and a * label/member change on an unmoved card is a change worth emitting - owner * question "who owns this and which revision round is it in" must be answerable * from the raw store. */ import type { AuthRequirement, ConnectorConfig, ConnectorHealth, IConnector, NormalizedItem } from '../framework/types.js'; export declare class TrelloConnector implements IConnector { readonly name = "trello"; readonly type: "api"; private config; private apiKey; private token; private readonly baseUrl; private lastPollTime; private lastPollCount; private lastError; /** boardId → (cardId → encoded card state) */ private lastCardStates; private readonly stateFilePath; constructor(config: ConnectorConfig); private loadState; private saveState; init(): Promise; dispose(): Promise; healthCheck(): Promise; getAuthRequirements(): AuthRequirement[]; authenticate(): Promise; private fetchWithTimeout; /** id → display name for a board's members. Failure degrades to raw ids * (name resolution is enrichment, never a reason to drop a poll). */ private fetchMemberNames; poll(_since: Date): Promise; } //# sourceMappingURL=index.d.ts.map