import { KiwiClient } from '../client';
import { TestPlan, TestPlanFilter, TestPlanWithPermalinks, FilterOutputOptions, Attachment, Tag } from '../types';
/**
 * Test Plan API module
 */
export declare class TestPlanAPI {
    private client;
    constructor(client: KiwiClient);
    /**
     * Create a new test plan
     */
    create(testPlanData: Partial<TestPlan>): Promise<TestPlan>;
    /**
     * Filter test plans
     */
    filter(query?: TestPlanFilter): Promise<TestPlan[]>;
    /**
     * Filter test plans with output options
     */
    filter(query: TestPlanFilter | undefined, options: FilterOutputOptions): Promise<TestPlan[] | TestPlanWithPermalinks[]>;
    /**
     * Get the URL API instance for permalink injection
     * @private
     */
    private getUrlApi;
    /**
     * Update a test plan
     */
    update(testPlanId: number, updateData: Partial<TestPlan>): Promise<TestPlan>;
    /**
     * Add a test case to test plan
     */
    addCase(testPlanId: number, testCaseId: number): Promise<void>;
    /**
     * Remove a test case from test plan
     */
    removeCase(testPlanId: number, testCaseId: number): Promise<void>;
    /**
     * Update test case order in test plan
     */
    updateCaseOrder(testPlanId: number, caseOrders: {
        case_id: number;
        sortkey: number;
    }[]): Promise<void>;
    /**
     * Add a tag to test plan
     */
    addTag(testPlanId: number, tag: string): Promise<Tag>;
    /**
     * Remove a tag from test plan
     */
    removeTag(testPlanId: number, tag: string): Promise<void>;
    /**
     * Add an attachment to test plan
     */
    addAttachment(testPlanId: number, filename: string, b64content: string): Promise<Attachment>;
    /**
     * List attachments for test plan
     */
    listAttachments(testPlanId: number): Promise<Attachment[]>;
    /**
     * Get test plan tree structure
     */
    tree(testPlanId?: number): Promise<any>;
}
