import React from 'react';
import BaseComponent from './BaseComponent';
interface Props<T extends Social.IExtra> extends React.PropsWithChildren {
    extra?: T;
    className?: string;
    style?: {};
}
interface State<T extends Social.IExtra> {
    OG?: Social.IMetaContent;
    extra?: T;
    apiStep: number;
}
export declare class BaseWidgetComponent<T extends Social.IExtra> extends BaseComponent<Props<T>, State<T>> {
    readonly state: State<T>;
    protected readonly id: string;
    protected widgetId: string;
    private defaultExtra;
    constructor(props: Props<T>);
    componentDidMount(): void;
    componentWillUnmount(): void;
    initialize(widgetId: string, defaultExtra: T): void;
    getApiStep(): number;
    setApiStep(callback?: (...args: any[]) => any): void;
    onInit(): void;
    onRender(_extra: T, _OG?: Social.IMetaContent): JSX.Element | null;
    onMount(_extra: T): void;
    onUnmount(_extra: T): void;
    render(): React.JSX.Element | null;
}
export {};
