import { type AxiosInstance } from "axios";
import { type ApiEntitlement } from "./generated/metadata-json-api/index.js";
export type FeatureContext = {
    organizationId: string;
    earlyAccessValues: string[];
    tier: string;
    jsSdkVersion: string;
    controlledFeatureRollout: boolean;
};
export interface ILiveFeatures {
    live: {
        configuration: {
            host: string;
            key: string;
        };
        context: FeatureContext;
    };
}
/**
 * @internal
 */
export declare function isLiveFeatures(features: ILiveFeatures | IStaticFeatures | undefined): features is ILiveFeatures;
export interface IStaticFeatures {
    static: {
        items: Record<string, string>;
        context: FeatureContext;
    };
}
/**
 * @internal
 */
export declare function isStaticFeatures(features: ILiveFeatures | IStaticFeatures | undefined): features is IStaticFeatures;
export interface IUserProfile {
    name: string;
    userId: string;
    email?: string;
    firstName?: string;
    lastName?: string;
    organizationName: string;
    organizationId: string;
    links: {
        user: string;
        organization: string;
    };
    features?: ILiveFeatures | IStaticFeatures;
    permissions?: string[];
    entitlements: ApiEntitlement[];
    deployment?: string;
}
export interface ProfileApiInterface {
    getCurrent: () => Promise<IUserProfile>;
    getCurrentWithDetails: () => Promise<IUserProfile>;
}
export declare const tigerProfileClientFactory: (axios: AxiosInstance) => ProfileApiInterface;
export declare function ProfileApi_GetCurrent(axios: AxiosInstance, _detailed?: boolean): Promise<{
    deployment?: any;
    name: string;
    userId: string;
    email?: string;
    firstName?: string;
    lastName?: string;
    organizationName: string;
    organizationId: string;
    links: {
        user: string;
        organization: string;
    };
    features?: ILiveFeatures | IStaticFeatures;
    permissions?: string[];
    entitlements: ApiEntitlement[];
}>;
export declare function ProfileApi_GetCurrentWithDetails(axios: AxiosInstance, _detailed?: boolean): Promise<{
    deployment?: any;
    email?: string;
    name: string;
    firstName?: string;
    lastName?: string;
    userId: string;
    organizationName: string;
    organizationId: string;
    links: {
        user: string;
        organization: string;
    };
    features?: ILiveFeatures | IStaticFeatures;
    permissions?: string[];
    entitlements: ApiEntitlement[];
}>;
//# sourceMappingURL=profile.d.ts.map