import { ApiError } from '../api/errors.ts';
import type { TrelloConfig } from './config.ts';
export declare class TrelloApiError extends ApiError {
    readonly endpoint: string;
    readonly status: number;
    constructor(endpoint: string, status: number, message: string);
}
export interface TrelloTransport {
    call(method: string, path: string, params?: Record<string, string>, body?: unknown): Promise<unknown>;
}
export declare class HttpTrelloTransport implements TrelloTransport {
    protected readonly fetch: typeof fetch;
    private readonly apiKey;
    private readonly apiToken;
    private readonly baseUrl;
    private readonly timeout;
    constructor(opts: Pick<TrelloConfig, 'apiKey' | 'apiToken' | 'baseUrl' | 'timeout'>);
    call(method: string, path: string, params?: Record<string, string>, body?: unknown): Promise<unknown>;
}
export declare function listWorkspaces(transport: TrelloTransport): Promise<Record<string, unknown>[]>;
export declare function listWorkspaceBoards(transport: TrelloTransport, workspaceId: string): Promise<Record<string, unknown>[]>;
export declare function getBoard(transport: TrelloTransport, boardId: string): Promise<Record<string, unknown>>;
export declare function listBoardLists(transport: TrelloTransport, boardId: string): Promise<Record<string, unknown>[]>;
export declare function getList(transport: TrelloTransport, listId: string): Promise<Record<string, unknown>>;
export declare function listBoardMembers(transport: TrelloTransport, boardId: string): Promise<Record<string, unknown>[]>;
export declare function listBoardLabels(transport: TrelloTransport, boardId: string): Promise<Record<string, unknown>[]>;
export declare function listListCards(transport: TrelloTransport, listId: string): Promise<Record<string, unknown>[]>;
/** The cards Trello's search names for `query`, ids only. */
export declare function searchCards(transport: TrelloTransport, query: string, limit: number): Promise<Record<string, unknown>[]>;
export declare function getCard(transport: TrelloTransport, cardId: string): Promise<Record<string, unknown>>;
export declare function listCardComments(transport: TrelloTransport, cardId: string): Promise<Record<string, unknown>[]>;
export interface CardCreateInput {
    listId: string;
    name: string;
    desc?: string | null;
}
export declare function cardCreate(transport: TrelloTransport, input: CardCreateInput): Promise<Record<string, unknown>>;
export interface CardUpdateInput {
    cardId: string;
    name?: string | null;
    desc?: string | null;
    closed?: boolean | null;
    due?: string | null;
    dueComplete?: boolean | null;
}
export declare function cardUpdate(transport: TrelloTransport, input: CardUpdateInput): Promise<Record<string, unknown>>;
export declare function cardMove(transport: TrelloTransport, cardId: string, listId: string): Promise<Record<string, unknown>>;
export declare function cardAssign(transport: TrelloTransport, cardId: string, memberId: string): Promise<Record<string, unknown>>;
export declare function cardAddLabel(transport: TrelloTransport, cardId: string, labelId: string): Promise<Record<string, unknown>>;
export declare function cardRemoveLabel(transport: TrelloTransport, cardId: string, labelId: string): Promise<Record<string, unknown>>;
export declare function commentCreate(transport: TrelloTransport, cardId: string, text: string): Promise<Record<string, unknown>>;
export declare function commentUpdate(transport: TrelloTransport, cardId: string, commentId: string, text: string): Promise<Record<string, unknown>>;
//# sourceMappingURL=client.d.ts.map