import { Card, CardCustomField, CardHistoryItem, CardStickerItem, CardType, ChildCardItem, Comment, CreateCardParams, CreateCommentParams, CreateSubtaskParams, CreateTagParams, LinkedCardItem, Outcome, ParentCardItem, ParentGraphItem, Subtask, Tag, UpdateCardParams, UpdateCommentParams } from '../../types/index.js';
import { BaseClientModuleImpl } from './base-client.js';
export interface CardFilters {
    archived_from?: string;
    archived_from_date?: string;
    archived_to?: string;
    archived_to_date?: string;
    created_from?: string;
    created_from_date?: string;
    created_to?: string;
    created_to_date?: string;
    deadline_from?: string;
    deadline_from_date?: string;
    deadline_to?: string;
    deadline_to_date?: string;
    discarded_from?: string;
    discarded_from_date?: string;
    discarded_to?: string;
    discarded_to_date?: string;
    first_end_from?: string;
    first_end_from_date?: string;
    first_end_to?: string;
    first_end_to_date?: string;
    first_start_from?: string;
    first_start_from_date?: string;
    first_start_to?: string;
    first_start_to_date?: string;
    in_current_position_since_from?: string;
    in_current_position_since_from_date?: string;
    in_current_position_since_to?: string;
    in_current_position_since_to_date?: string;
    last_end_from?: string;
    last_end_from_date?: string;
    last_end_to?: string;
    last_end_to_date?: string;
    last_modified_from?: string;
    last_modified_from_date?: string;
    last_modified_to?: string;
    last_modified_to_date?: string;
    last_start_from?: string;
    last_start_from_date?: string;
    last_start_to?: string;
    last_start_to_date?: string;
    board_ids?: number[];
    card_ids?: number[];
    column_ids?: number[];
    lane_ids?: number[];
    last_column_ids?: number[];
    last_lane_ids?: number[];
    owner_user_ids?: number[];
    priorities?: number[];
    reason_ids?: number[];
    sections?: number[];
    sizes?: number[];
    type_ids?: number[];
    version_ids?: number[];
    workflow_ids?: number[];
    colors?: string[];
    custom_ids?: string[];
    include_logged_time_for_child_cards?: number;
    include_logged_time_for_subtasks?: number;
    page?: number;
    per_page?: number;
    assignee_user_id?: number;
    tag_ids?: number[];
}
export declare class CardClient extends BaseClientModuleImpl {
    /**
     * Get cards from a board with optional filters
     */
    getCards(boardId: number, filters?: CardFilters): Promise<Card[]>;
    /**
     * Get a specific card by ID
     */
    getCard(cardId: number): Promise<Card>;
    /**
     * Create a new card
     */
    createCard(params: CreateCardParams): Promise<Card>;
    /**
     * Update an existing card
     */
    updateCard(params: UpdateCardParams): Promise<Card>;
    /**
     * Move a card to a different column or lane
     */
    moveCard(cardId: number, columnId: number, laneId?: number, position?: number): Promise<Card>;
    /**
     * Delete a card
     */
    deleteCard(cardId: number): Promise<void>;
    /**
     * Get comments for a specific card
     */
    getCardComments(cardId: number): Promise<Comment[]>;
    /**
     * Get details of a specific comment
     */
    getCardComment(cardId: number, commentId: number): Promise<Comment>;
    /**
     * Get custom fields for a specific card
     */
    getCardCustomFields(cardId: number): Promise<CardCustomField[]>;
    /**
     * Get all card types
     */
    getCardTypes(): Promise<CardType[]>;
    /**
     * Get card outcome history
     */
    getCardHistory(cardId: number, outcomeId: number): Promise<CardHistoryItem[]>;
    /**
     * Get card outcomes
     */
    getCardOutcomes(cardId: number): Promise<Outcome[]>;
    /**
     * Get linked cards for a specific card
     */
    getCardLinkedCards(cardId: number): Promise<LinkedCardItem[]>;
    /**
     * Get subtasks for a specific card
     */
    getCardSubtasks(cardId: number): Promise<Subtask[]>;
    /**
     * Get details of a specific subtask
     */
    getCardSubtask(cardId: number, subtaskId: number): Promise<Subtask>;
    /**
     * Create a new subtask for a card
     */
    createCardSubtask(cardId: number, params: CreateSubtaskParams): Promise<Subtask>;
    /**
     * Get parent cards for a specific card
     */
    getCardParents(cardId: number): Promise<ParentCardItem[]>;
    /**
     * Check if a card is a parent of a given card
     */
    getCardParent(cardId: number, parentCardId: number): Promise<{
        position: number;
    }>;
    /**
     * Make a card a parent of a given card
     */
    addCardParent(cardId: number, parentCardId: number): Promise<{
        position: number;
    }>;
    /**
     * Remove the link between a child card and a parent card
     */
    removeCardParent(cardId: number, parentCardId: number): Promise<void>;
    /**
     * Get parent graph for a specific card (including parent's parents)
     */
    getCardParentGraph(cardId: number): Promise<ParentGraphItem[]>;
    /**
     * Get child cards for a specific card
     */
    getCardChildren(cardId: number): Promise<ChildCardItem[]>;
    /**
     * Block a card with a reason comment
     */
    blockCard(cardId: number, reason: string): Promise<void>;
    /**
     * Unblock a card by removing its block reason
     */
    unblockCard(cardId: number): Promise<void>;
    /**
     * Create a new comment on a card
     */
    createCardComment(cardId: number, params: CreateCommentParams): Promise<Comment>;
    /**
     * Update an existing comment on a card
     */
    updateCardComment(cardId: number, commentId: number, params: UpdateCommentParams): Promise<Comment>;
    /**
     * Delete a comment from a card
     */
    deleteCardComment(cardId: number, commentId: number): Promise<void>;
    /**
     * Create a new tag
     */
    createTag(params: CreateTagParams): Promise<Tag>;
    /**
     * Add a tag to a card
     */
    addTagToCard(cardId: number, tagId: number): Promise<void>;
    /**
     * Remove a tag from a card
     */
    removeTagFromCard(cardId: number, tagId: number): Promise<void>;
    /**
     * Add a sticker to a card
     */
    addStickerToCard(cardId: number, stickerId: number): Promise<CardStickerItem>;
    /**
     * Remove a sticker from a card (sticker_card_id is the association ID, not sticker_id)
     */
    removeStickerFromCard(cardId: number, stickerCardId: number): Promise<void>;
    /**
     * Add or update a predecessor relationship between two cards
     */
    addPredecessor(cardId: number, predecessorCardId: number, params?: {
        linked_card_position?: number;
        card_position?: number;
    }): Promise<void>;
    /**
     * Remove the predecessor relationship between two cards
     */
    removePredecessor(cardId: number, predecessorCardId: number): Promise<void>;
}
//# sourceMappingURL=card-client.d.ts.map