import type TransformingNetworkClient from '../../communication/TransformingNetworkClient';
import type Callback from '../../types/Callback';
import type Capability from '../capabilities/Capability';
import Helper from '../Helper';
import type Onboarding from '../onboarding/Onboarding';
import type Organization from '../organizations/Organizations';
import type Client from './Client';
import { type ClientData } from './data';
export default class ClientHelper extends Helper<ClientData, Client> {
    protected readonly links: ClientData['_links'];
    protected readonly embedded: Client['_embedded'];
    constructor(networkClient: TransformingNetworkClient, links: ClientData['_links'], embedded: Client['_embedded']);
    /**
     * Returns the organization of the client, if embedded.
     * Otherwise fetches it from the API.
     *
     * @since 4.4.0
     */
    getOrganization(): Promise<Organization>;
    getOrganization(callback: Callback<Organization>): void;
    /**
     * Returns the onboarding status of the client, if embedded.
     * Otherwise fetches it from the API.
     *
     * @since 4.4.0
     */
    getOnboarding(): Promise<Onboarding>;
    getOnboarding(callback: Callback<Onboarding>): void;
    /**
     * Returns the capabilities of the client organization, if embedded.
     *
     * Note: Unlike organization and onboarding, client-specific capabilities can only
     * be retrieved via embedding. The Capabilities API (`/v2/capabilities`) returns
     * capabilities for the authenticated organization, not for a specific client.
     *
     * @since 4.4.0
     */
    getCapabilities(): Capability[] | undefined;
}
