import { KiwiClient } from '../client';
import { Product, Build, Component, Classification, Category, Version, PlanType, Priority, TestCaseStatus, TestExecutionStatus, Environment, Property, Tag, User, Bug, FilterOptions } from '../types';
/**
 * Product API module
 */
export declare class ProductAPI {
    private client;
    constructor(client: KiwiClient);
    create(productData: Partial<Product>): Promise<Product>;
    filter(query?: FilterOptions): Promise<Product[]>;
}
/**
 * Build API module
 */
export declare class BuildAPI {
    private client;
    constructor(client: KiwiClient);
    create(buildData: Partial<Build>): Promise<Build>;
    filter(query?: FilterOptions): Promise<Build[]>;
    update(buildId: number, updateData: Partial<Build>): Promise<Build>;
}
/**
 * Component API module
 */
export declare class ComponentAPI {
    private client;
    constructor(client: KiwiClient);
    create(componentData: Partial<Component>): Promise<Component>;
    filter(query?: FilterOptions): Promise<Component[]>;
    update(componentId: number, updateData: Partial<Component>): Promise<Component>;
}
/**
 * Classification API module
 */
export declare class ClassificationAPI {
    private client;
    constructor(client: KiwiClient);
    create(classificationData: Partial<Classification>): Promise<Classification>;
    filter(query?: FilterOptions): Promise<Classification[]>;
}
/**
 * Category API module
 */
export declare class CategoryAPI {
    private client;
    constructor(client: KiwiClient);
    create(categoryData: Partial<Category>): Promise<Category>;
    filter(query?: FilterOptions): Promise<Category[]>;
}
/**
 * Version API module
 */
export declare class VersionAPI {
    private client;
    constructor(client: KiwiClient);
    create(versionData: Partial<Version>): Promise<Version>;
    filter(query?: FilterOptions): Promise<Version[]>;
}
/**
 * Plan Type API module
 */
export declare class PlanTypeAPI {
    private client;
    constructor(client: KiwiClient);
    create(planTypeData: Partial<PlanType>): Promise<PlanType>;
    filter(query?: FilterOptions): Promise<PlanType[]>;
}
/**
 * Priority API module
 */
export declare class PriorityAPI {
    private client;
    constructor(client: KiwiClient);
    filter(query?: FilterOptions): Promise<Priority[]>;
}
/**
 * Test Case Status API module
 */
export declare class TestCaseStatusAPI {
    private client;
    constructor(client: KiwiClient);
    filter(query?: FilterOptions): Promise<TestCaseStatus[]>;
}
/**
 * Test Execution Status API module
 */
export declare class TestExecutionStatusAPI {
    private client;
    constructor(client: KiwiClient);
    filter(query?: FilterOptions): Promise<TestExecutionStatus[]>;
}
/**
 * Environment API module
 */
export declare class EnvironmentAPI {
    private client;
    constructor(client: KiwiClient);
    create(envData: Partial<Environment>): Promise<Environment>;
    filter(query?: FilterOptions): Promise<Environment[]>;
    addProperty(envId: number, name: string, value: string): Promise<void>;
    properties(envId: number): Promise<Property[]>;
    removeProperty(envId: number, name: string): Promise<void>;
}
/**
 * Tag API module
 */
export declare class TagAPI {
    private client;
    constructor(client: KiwiClient);
    filter(query?: FilterOptions): Promise<Tag[]>;
}
/**
 * User API module
 */
export declare class UserAPI {
    private client;
    constructor(client: KiwiClient);
    filter(query?: FilterOptions): Promise<User[]>;
    update(userId: number, updateData: Partial<User>): Promise<User>;
    joinGroup(userId: number, groupName: string): Promise<void>;
    addAttachment(userId: number, filename: string, b64content: string): Promise<any>;
}
/**
 * Bug API module
 */
export declare class BugAPI {
    private client;
    constructor(client: KiwiClient);
    details(bugId: number): Promise<Bug>;
    report(bugData: Partial<Bug>): Promise<Bug>;
}
