import React from 'react';
type AnalyticsEvent = 'click' | 'check' | 'change';
type CommonComponentProps = {
    id?: string;
};
type ComponentSpecificClickEventProps = {
    Banner: {
        title: string;
    };
    Button: {
        value: string;
        type: string;
    };
    IconButton: {
        value?: string;
    };
    'Typography.Link': {
        value: string;
        href?: string;
    };
    Dropdown: {
        optionValue: string;
        optionKey?: string;
        optionKeyPath?: Array<string>;
        triggerValue?: string;
    };
    Card: {
        title: string;
        accent?: boolean;
    };
    TourStep: {
        title: string;
        message?: string;
        step: number;
    };
};
type ComponentSpecificCheckEventProps = {
    Radio: {
        value: string;
    };
    Checkbox: {
        value: string;
    };
};
type ComponentSpecificChangeEventProps = {
    Tabs: {
        activeKey: string;
    };
    Steps: {
        activeStep: number;
    };
    Select: {
        value: string | Array<string>;
        label: string | Array<string>;
    };
    Switch: {
        checked: boolean;
    };
    TourStep: {
        title: string;
        message?: string;
        step: number;
    };
};
type ComponentNames = {
    click: keyof ComponentSpecificClickEventProps;
    check: keyof ComponentSpecificCheckEventProps;
    change: keyof ComponentSpecificChangeEventProps;
};
type AnyComponentName = ComponentNames[AnalyticsEvent];
type CommonAnalyticsProps<Event extends AnalyticsEvent, Component extends AnyComponentName> = {
    event: Event;
    location: string;
    component: Component;
} & CommonComponentProps;
type AnalyticsClickEventParams<Component extends ComponentNames['click']> = CommonAnalyticsProps<'click', Component> & ComponentSpecificClickEventProps[Component];
type AnalyticsCheckEventParams<Component extends ComponentNames['check']> = CommonAnalyticsProps<'check', Component> & ComponentSpecificCheckEventProps[Component];
type AnalyticsChangeEventParams<Component extends ComponentNames['change']> = CommonAnalyticsProps<'change', Component> & ComponentSpecificChangeEventProps[Component];
export type AnalyticsParams = AnalyticsClickEventParams<ComponentNames['click']> | AnalyticsCheckEventParams<ComponentNames['check']> | AnalyticsChangeEventParams<ComponentNames['change']>;
export declare const ANALYTICS_HANDLER_NAME = "CondoWebSendAnalyticsEvent";
export declare function extractChildrenContent(children: React.ReactNode | React.ReactInstance): string | null;
export declare function sendAnalyticsClickEvent<Component extends ComponentNames['click']>(component: Component, data: ComponentSpecificClickEventProps[Component] & CommonComponentProps): void;
export declare function sendAnalyticsCheckEvent<Component extends ComponentNames['check']>(component: Component, data: ComponentSpecificCheckEventProps[Component] & CommonComponentProps): void;
export declare function sendAnalyticsChangeEvent<Component extends ComponentNames['change']>(component: Component, data: ComponentSpecificChangeEventProps[Component] & CommonComponentProps): void;
export {};
//# sourceMappingURL=analytics.d.ts.map