import { type HighlightPublicInterface } from '../../client';
import type { ErrorMessage, Source } from '../../client/types/shared-types';
import type { IntegrationClient } from '../index';
import type { LDClientMin as LDClient } from './types/LDClient';
import type { Hook } from './types/Hooks';
import type { RecordMetric } from '../../client/types/types';
import { BufferedClass } from '../../sdk/buffer';
import { LDPluginEnvironmentMetadata } from '../../plugins/plugin';
import type { Attributes } from '@opentelemetry/api';
import type { LDContext } from '@launchdarkly/js-client-sdk';
export type { Hook, LDClient };
export declare const FEATURE_FLAG_SCOPE = "feature_flag";
export declare const FEATURE_FLAG_ENV_ATTR = "feature_flag.set.id";
export declare const FEATURE_FLAG_KEY_ATTR = "feature_flag.key";
export declare const FEATURE_FLAG_CONTEXT_ATTR = "feature_flag.context";
export declare const FEATURE_FLAG_CONTEXT_KEY_ATTR = "feature_flag.context.key";
export declare const FEATURE_FLAG_PROVIDER_ATTR = "feature_flag.provider.name";
export declare const FEATURE_FLAG_VARIANT_ATTR = "feature_flag.variant";
export declare const FEATURE_FLAG_RESULT_VARIANT_ATTR = "feature_flag.result.variant";
export declare const FEATURE_FLAG_PROVIDER_NAME_ATTR = "feature_flag.provider_name";
export declare const FEATURE_FLAG_CLIENT_SIDE_ID_ATTR = "feature_flag.client_side_id";
export declare const FEATURE_FLAG_IN_EXPERIMENT_ATTR = "feature_flag.result.reason.inExperiment";
export declare const FEATURE_FLAG_VARIATION_INDEX_ATTR = "feature_flag.result.variationIndex";
export declare const FEATURE_FLAG_APP_VERSION_ATTR = "feature_flag.app_version";
export declare const FEATURE_FLAG_SPAN_NAME = "evaluation";
export declare const LD_INITIALIZE_EVENT = "$ld:telemetry:session:init";
export declare const LD_ERROR_EVENT = "$ld:telemetry:error";
export declare const LD_TRACK_EVENT = "$ld:telemetry:track";
export declare const LD_METRIC_EVENT = "$ld:telemetry:metric";
export declare const LD_METRIC_NAME_DOCUMENT_LOAD = "document_load";
export declare function getCanonicalKey(context: LDContext): string;
export declare function getCanonicalObj(context: LDContext): string | Attributes;
export declare function setupLaunchDarklyIntegration(hClient: HighlightPublicInterface, ldClient: LDClient): void;
export declare class LaunchDarklyIntegrationSDK implements IntegrationClient {
    client: LDClient;
    metadata?: LDPluginEnvironmentMetadata;
    constructor(client: LDClient, metadata?: LDPluginEnvironmentMetadata);
    getHooks(_: LDPluginEnvironmentMetadata): Hook[];
    init(sessionSecureID: string): void;
    recordGauge(sessionSecureID: string, metric: RecordMetric): void;
    identify(_sessionSecureID: string, _user_identifier: string, _user_object?: {}, _source?: Source): void;
    error(sessionSecureID: string, error: ErrorMessage): void;
    track(sessionSecureID: string, metadata: object): void;
}
export declare class LaunchDarklyIntegration extends BufferedClass<IntegrationClient> implements IntegrationClient {
    client: LaunchDarklyIntegrationSDK;
    constructor(client: LDClient, metadata?: LDPluginEnvironmentMetadata);
    getHooks(metadata: LDPluginEnvironmentMetadata): Hook[];
    init(sessionSecureID: string): any;
    recordGauge(sessionSecureID: string, metric: RecordMetric): any;
    identify(sessionSecureID: string, user_identifier: string, user_object?: {}, source?: Source): any;
    error(sessionSecureID: string, error: ErrorMessage): any;
    track(sessionSecureID: string, metadata: object): any;
}
