/**
 * Teams Client API
 *
 * Client-side API functions for team operations.
 * These functions are pure (no React) and can be used in hooks or directly.
 *
 * @module core/lib/teams/teams.api
 *
 * @example
 * // Direct usage
 * const teams = await TeamsAPI.getUserTeams()
 *
 * // In React Query
 * useQuery({ queryFn: TeamsAPI.getUserTeams })
 */
import type { Team, AdminTeamsResponse, AdminTeamsParams, CreateTeamRequest } from './types';
/**
 * Teams Client API
 *
 * Provides methods for fetching teams from the API.
 * Server-side operations use TeamService directly.
 */
export declare class TeamsAPI {
    /**
     * Fetch current user's teams
     *
     * @returns Array of teams the user belongs to
     * @throws Error if request fails
     *
     * @example
     * const teams = await TeamsAPI.getUserTeams()
     */
    static getUserTeams(): Promise<Team[]>;
    /**
     * Create a new team
     *
     * @param data - Team creation data
     * @returns Created team
     * @throws Error if request fails
     */
    static createTeam(data: CreateTeamRequest): Promise<Team>;
    /**
     * Fetch all teams (admin only)
     *
     * Requires superadmin or developer role.
     * Supports search, filtering by type, and pagination.
     *
     * @param params - Query parameters
     * @returns Teams response with counts and pagination
     * @throws Error if request fails or user is not authorized
     *
     * @example
     * // Get all user teams
     * const response = await TeamsAPI.getAdminTeams({ type: 'user' })
     *
     * // Search teams
     * const response = await TeamsAPI.getAdminTeams({ search: 'acme' })
     *
     * // Paginate
     * const response = await TeamsAPI.getAdminTeams({ page: 2, limit: 20 })
     */
    static getAdminTeams(params?: AdminTeamsParams): Promise<AdminTeamsResponse>;
}
//# sourceMappingURL=teams.api.d.ts.map