/// <reference types="node" />
/// <reference types="lodash" />
import React from 'react';
import { GetContentOptions, Subscription, BehaviorSubject } from '@builder.io/sdk';
import { Url } from 'url';
export interface BuilderPageProps {
    modelName?: string;
    name?: string;
    data?: any;
    entry?: string;
    apiKey?: string;
    options?: GetContentOptions;
    contentLoaded?: (data: any) => void;
    contentError?: (error: any) => void;
    content?: any;
    location?: Location | Url;
    onStateChange?: (newData: any) => void;
    noAsync?: boolean;
    emailMode?: boolean;
    inlineContent?: boolean;
}
interface BuilderPageState {
    state: any;
    update: (state: any) => any;
}
export declare class BuilderPage extends React.Component<BuilderPageProps, BuilderPageState> {
    subscriptions: Subscription;
    onStateChange: BehaviorSubject<any, any>;
    lastJsCode: string;
    lastHttpRequests: string;
    ref: HTMLElement | null;
    get name(): string | undefined;
    private _asyncRequests?;
    private _errors?;
    private _logs?;
    constructor(props: BuilderPageProps);
    get device(): "mobile" | "tablet" | "desktop";
    get locationState(): {
        path: any;
        query: {
            [key: string]: string;
        };
        search: any;
        pathname: any;
        hostname: any;
        host: any;
    };
    get deviceSizeState(): string;
    resizeListener: (() => void) & import("lodash").Cancelable;
    componentWillMount(): void;
    componentDidMount(): void;
    updateState: (fn: (state: any) => void) => void;
    notifyStateChange(): void;
    processStateFromApi(state: {
        [key: string]: any;
    }): {
        [key: string]: any;
    };
    get location(): any;
    getCssFromFont(font: any): string;
    componentWillUnmount(): void;
    getFontCss(data: any): any;
    getCss(data: any): any;
    get data(): any;
    componentDidUpdate(prevProps: BuilderPageProps): void;
    render(): JSX.Element;
    evalExpression(expression: string): string;
    throttledHandleRequest(propertyName: string, url: string): Promise<any>;
    handleRequest(propertyName: string, url: string): Promise<any>;
    unsubscribe(): void;
    handleBuilderRequest(propertyName: string, optionsString: string): void;
    onContentLoaded: (data: any) => void;
}
export {};
