import { BoardFilters } from './modules/board-client.js';
import { BoardClient, CardClient, CardFilters, UserClient, WorkspaceClient } from './modules/index.js';
import { BusinessMapConfig, CreateCommentParams, CreateTagParams, UpdateCommentParams } from '../types/index.js';
export declare class BusinessMapClient {
    private readonly http;
    private readonly config;
    private isInitialized;
    private readonly workspaceClient;
    private readonly boardClient;
    private readonly cardClient;
    private readonly userClient;
    private readonly customFieldClient;
    private readonly utilityClient;
    private readonly workflowClient;
    constructor(config: BusinessMapConfig);
    /**
     * Initialize the client by verifying the connection to the BusinessMap API
     */
    initialize(): Promise<void>;
    /**
     * Check if the client has been initialized
     */
    get initialized(): boolean;
    private transformError;
    getWorkspaces(): Promise<import("../types/workspace.js").Workspace[]>;
    getWorkspace(workspaceId: number): Promise<import("../types/workspace.js").Workspace>;
    createWorkspace(params: Parameters<WorkspaceClient['createWorkspace']>[0]): Promise<import("../types/workspace.js").Workspace>;
    updateWorkspace(workspaceId: number, params: Parameters<WorkspaceClient['updateWorkspace']>[1]): Promise<import("../types/workspace.js").Workspace>;
    deleteWorkspace(workspaceId: number): Promise<void>;
    getBoards(filters?: BoardFilters): Promise<import("../types/board.js").Board[]>;
    getBoard(boardId: number): Promise<import("../types/board.js").Board>;
    createBoard(params: Parameters<BoardClient['createBoard']>[0]): Promise<import("../types/board.js").Board>;
    updateBoard(boardId: number, params: Parameters<BoardClient['updateBoard']>[1]): Promise<import("../types/board.js").Board>;
    deleteBoard(boardId: number): Promise<void>;
    getBoardStructure(boardId: number): Promise<any>;
    getColumns(boardId: number): Promise<import("../types/board.js").Column[]>;
    getLanes(boardId: number): Promise<import("../types/lane.js").Lane[]>;
    getLane(laneId: number): Promise<import("../types/lane.js").Lane>;
    createLane(params: Parameters<BoardClient['createLane']>[0]): Promise<import("../types/lane.js").Lane>;
    getCurrentBoardStructure(boardId: number): Promise<import("../types/board.js").CurrentBoardStructure>;
    createColumn(boardId: number, params: Parameters<BoardClient['createColumn']>[1]): Promise<import("../types/board.js").Column>;
    updateColumn(boardId: number, columnId: number, params: Parameters<BoardClient['updateColumn']>[2]): Promise<import("../types/board.js").Column>;
    deleteColumn(boardId: number, columnId: number): Promise<void>;
    getCards(boardId: number, filters?: CardFilters): Promise<import("../types/card.js").Card[]>;
    getCard(cardId: number): Promise<import("../types/card.js").Card>;
    createCard(params: Parameters<CardClient['createCard']>[0]): Promise<import("../types/card.js").Card>;
    updateCard(params: Parameters<CardClient['updateCard']>[0]): Promise<import("../types/card.js").Card>;
    moveCard(cardId: number, columnId: number, laneId?: number, position?: number): Promise<import("../types/card.js").Card>;
    deleteCard(cardId: number): Promise<void>;
    getCardComments(cardId: number): Promise<import("../types/card.js").Comment[]>;
    getCardComment(cardId: number, commentId: number): Promise<import("../types/card.js").Comment>;
    getCardCustomFields(cardId: number): Promise<import("../types/card.js").CardCustomField[]>;
    getCardTypes(): Promise<import("../types/card.js").CardType[]>;
    getCardHistory(cardId: number, outcomeId: number): Promise<import("../types/card.js").CardHistoryItem[]>;
    getCardOutcomes(cardId: number): Promise<import("../types/card.js").Outcome[]>;
    getCardLinkedCards(cardId: number): Promise<import("../types/card.js").LinkedCardItem[]>;
    getCardSubtasks(cardId: number): Promise<import("../types/card.js").Subtask[]>;
    getCardSubtask(cardId: number, subtaskId: number): Promise<import("../types/card.js").Subtask>;
    createCardSubtask(cardId: number, params: Parameters<CardClient['createCardSubtask']>[1]): Promise<import("../types/card.js").Subtask>;
    getCardParents(cardId: number): Promise<import("../types/card.js").ParentCardItem[]>;
    getCardParent(cardId: number, parentCardId: number): Promise<{
        position: number;
    }>;
    addCardParent(cardId: number, parentCardId: number): Promise<{
        position: number;
    }>;
    removeCardParent(cardId: number, parentCardId: number): Promise<void>;
    getCardParentGraph(cardId: number): Promise<import("../types/card.js").ParentGraphItem[]>;
    getCardChildren(cardId: number): Promise<import("../types/card.js").ChildCardItem[]>;
    blockCard(cardId: number, reason: string): Promise<void>;
    unblockCard(cardId: number): Promise<void>;
    createCardComment(cardId: number, params: CreateCommentParams): Promise<import("../types/card.js").Comment>;
    updateCardComment(cardId: number, commentId: number, params: UpdateCommentParams): Promise<import("../types/card.js").Comment>;
    deleteCardComment(cardId: number, commentId: number): Promise<void>;
    createTag(params: CreateTagParams): Promise<import("../types/card.js").Tag>;
    addTagToCard(cardId: number, tagId: number): Promise<void>;
    removeTagFromCard(cardId: number, tagId: number): Promise<void>;
    addStickerToCard(cardId: number, stickerId: number): Promise<import("../types/card.js").CardStickerItem>;
    removeStickerFromCard(cardId: number, stickerCardId: number): Promise<void>;
    addPredecessor(cardId: number, predecessorCardId: number, params?: Parameters<CardClient['addPredecessor']>[2]): Promise<void>;
    removePredecessor(cardId: number, predecessorCardId: number): Promise<void>;
    getUsers(): Promise<import("../types/user.js").User[]>;
    getUser(userId: number): Promise<import("../types/user.js").User>;
    getCurrentUser(): Promise<import("../types/user.js").CurrentUser>;
    inviteUser(params: Parameters<UserClient['inviteUser']>[0]): Promise<import("../types/user.js").InvitedUser>;
    getCustomField(customFieldId: number): Promise<import("../types/custom-field.js").CustomField>;
    getWorkflowCycleTimeColumns(boardId: number, workflowId: number): Promise<import("../types/workflow.js").WorkflowCycleTimeColumn[]>;
    getWorkflowEffectiveCycleTimeColumns(boardId: number, workflowId: number): Promise<import("../types/workflow.js").WorkflowCycleTimeColumn[]>;
    healthCheck(): Promise<boolean>;
    getApiInfo(): Promise<{
        message: string;
        endpoint: string;
        status: string;
        note: string;
        api_version: string;
        documentation: string;
    }>;
}
//# sourceMappingURL=businessmap-client.d.ts.map