import { Injector } from '@opensumi/di';
import { IRPCProtocol } from '@opensumi/ide-connection';
import { URI, getIcon } from '@opensumi/ide-core-browser';
import { EditorComponentRenderMode } from '@opensumi/ide-editor/lib/browser';
import { ToolBarPosition } from '@opensumi/ide-toolbar';
import { IExtension } from '../../common';
/**
 * Browser 尽量只export视图相关的少量API
 * 设计API时遵循以下原则:
 * 1. browser只暴露getter，任何注册、调用等会产生副作用的行为全部放入逻辑层
 * @param injector
 */
export declare function createBrowserApi(injector: Injector, extension: IExtension, rpcProtocol?: IRPCProtocol): {
    commands: {
        executeCommand<T>(command: string, ...args: any): Promise<T | undefined>;
    };
    ResizeHandleHorizontal: (props: import("@opensumi/ide-core-browser/lib/components").ResizeHandleProps) => React.JSX.Element;
    ResizeHandleVertical: (props: import("@opensumi/ide-core-browser/lib/components").ResizeHandleProps) => React.JSX.Element;
    PlainWebview: import("react").ComponentType<{
        id: string;
        renderRoot?: HTMLElement;
        appendToChild?: boolean;
    }>;
    URI: typeof URI;
    localize: (key: string, message?: string) => string;
    formatLocalize: (key: string, ...args: string[]) => string;
    getIcon: typeof getIcon;
    getThemeColors: () => {
        [key: string]: string;
    };
    ToolBarPosition: typeof ToolBarPosition;
    EditorComponentRenderMode: typeof EditorComponentRenderMode;
    reporter: any;
    NativeSelect: import("react").FC<import("react").SelectHTMLAttributes<HTMLSelectElement>>;
    Scrollbars: {
        ({ onScroll, onUpdate, forwardedRef, style, children, className, onReachBottom, tabBarMode, thumbSize, hiddenVertical, hiddenHorizontal, universal, }: import("@opensumi/ide-components").ICustomScrollbarProps): React.JSX.Element;
        displayName: string;
    };
    Scroll: {
        ({ onScroll, onUpdate, forwardedRef, style, children, className, onReachBottom, tabBarMode, thumbSize, hiddenVertical, hiddenHorizontal, universal, }: import("@opensumi/ide-components").ICustomScrollbarProps): React.JSX.Element;
        displayName: string;
    };
    preventWebviewCatchMouseEvents(): void;
    allowWebviewCatchMouseEvents(): void;
    RESIZE_LOCK: "resize-lock";
    ResizeFlexMode: typeof import("@opensumi/ide-core-browser/lib/components").ResizeFlexMode;
    EDirection: typeof import("@opensumi/ide-core-browser/lib/components").EDirection;
    Layout: typeof import("@opensumi/ide-core-browser/lib/components").Layout;
    PanelContext: React.Context<import("@opensumi/ide-core-browser/lib/components").ResizeHandle>;
    SplitPanel: React.FC<import("@opensumi/ide-core-browser/lib/components").SplitPanelProps>;
    BoxPanel: React.FC<{
        children?: import("react").ReactElement<import("@opensumi/ide-core-browser/lib/components").IChildComponentProps, string | import("react").JSXElementConstructor<any>> | import("react").ReactElement<import("@opensumi/ide-core-browser/lib/components").IChildComponentProps, string | import("react").JSXElementConstructor<any>>[];
        className?: string;
        direction?: import("@opensumi/ide-core-browser/lib/components").Layout.direction;
        flex?: number;
        zIndex?: number;
    }>;
    ToolbarActionBasedLayout(props?: {
        topSlotDefaultSize?: number;
        topSlotZIndex?: number;
    }): React.JSX.Element;
    fixLayout(layout: import("@opensumi/ide-core-browser/lib/components").ILayoutConfigCache): {
        [x: string]: {
            size?: number;
            currentId?: string;
        };
    };
    getStorageValue: () => {
        layout: {
            [x: string]: {
                size?: number;
                currentId?: string;
            };
        };
        colors: {
            [colorKey: string]: string;
        };
    };
    DefaultLayout: typeof import("@opensumi/ide-core-browser/lib/components").ToolbarActionBasedLayout;
    Button: React.MemoExoticComponent<(<T extends string>({ children, loading, className, type, htmlType, size, ghost, onClick, disabled, block, iconClass, icon, more, moreIconClass, menu, moreVisible, placement, title, showLoadingIcon, onVisibleChange, ...otherProps }: import("@opensumi/ide-components/lib/button").ButtonProps<T>) => React.ReactElement<import("@opensumi/ide-components/lib/button").ButtonProps<T>>)>;
    Badge: React.FC<{} & React.HTMLAttributes<HTMLSpanElement>>;
    TextArea: React.ForwardRefExoticComponent<import("@opensumi/ide-core-browser/lib/components").IInputBaseProps<HTMLTextAreaElement> & React.RefAttributes<HTMLTextAreaElement>>;
    Input: React.ForwardRefExoticComponent<import("@opensumi/ide-core-browser/lib/components").IInputBaseProps<HTMLInputElement> & {
        as?: any;
    } & React.RefAttributes<HTMLInputElement | HTMLTextAreaElement>>;
    VALIDATE_TYPE: typeof import("@opensumi/ide-core-browser/lib/components").VALIDATE_TYPE;
    ValidateInput: React.ForwardRefExoticComponent<import("@opensumi/ide-core-browser/lib/components").ValidateInputProp & React.RefAttributes<HTMLInputElement>>;
    bindInputElement(el: HTMLInputElement): (props: import("@opensumi/ide-core-browser/lib/components").ProxiedInputProp) => React.JSX.Element;
    InputNumber: React.FC<import("@opensumi/ide-core-browser/lib/components").InputNumberProps>;
    CheckBox: React.FC<React.HTMLProps<HTMLInputElement> & {
        insertClass?: string;
        label?: string;
        size?: "default" | "large";
        disabled?: boolean;
        wrapTabIndex?: number;
    }>;
    isDataOptions<T = any>(options: Array<React.ReactNode | import("@opensumi/ide-components/lib/select").IDataOption<T> | import("@opensumi/ide-components/lib/select").IDataOptionGroup<T>> | undefined): options is Array<import("@opensumi/ide-components/lib/select").IDataOption<T>>;
    isDataOptionGroups<T = any>(options: Array<React.ReactNode> | Array<import("@opensumi/ide-components/lib/select").IDataOption<T>> | import("@opensumi/ide-components/lib/select").IDataOptionGroup<T>[] | undefined): options is import("@opensumi/ide-components/lib/select").IDataOptionGroup<T>[];
    Select<T = string>({ disabled, options, size, children, value, onChange, onMouseEnter, optionLabelProp, style, optionStyle, className, maxHeight, equals, optionRenderer, groupTitleRenderer, footerComponent, headerComponent, showSearch, filterOption, searchPlaceholder, emptyComponent, selectedRenderer, onBeforeShowOptions, allowOptionsOverflow, dropdownRenderType, description, notMatchWarning, onSearchChange, }: import("@opensumi/ide-components/lib/select").ISelectProps<T>): React.JSX.Element;
    Option: React.FC<React.PropsWithChildren<{
        value: string | number | string[];
        children?: any;
        className?: string;
        onClick?: (value: string | number | string[]) => void;
        optionLabelProp?: string;
        disabled?: boolean;
        label?: string | undefined;
        style?: any;
        containerClassName?: string[];
    }>>;
    SelectOptionsList: React.ForwardRefExoticComponent<import("@opensumi/ide-components/lib/select").ISelectOptionsListProps<unknown> & React.RefAttributes<unknown>>;
    Tabs: (props: import("@opensumi/ide-components/lib/tabs").ITabsProps) => React.JSX.Element;
    Overlay: React.FC<import("react").PropsWithChildren<import("@opensumi/ide-components/lib/overlay").IOverlayProps>>;
    DialogContent: React.FC<import("@opensumi/ide-components/lib/dialog").IDialogProps>;
    Dialog: React.FC<import("@opensumi/ide-components/lib/dialog").IDialogProps>;
    createFromIconfontCN: typeof import("@opensumi/ide-core-browser/lib/components").createFromIconfontCN;
    IconContextProvider(props: React.PropsWithChildren<{
        value: import("@opensumi/ide-core-browser/lib/components").IiconContext<any>;
    }>): React.JSX.Element;
    IconContext: React.Context<import("@opensumi/ide-core-browser/lib/components").IiconContext<any>>;
    _InternalIcon: React.MemoExoticComponent<React.ForwardRefExoticComponent<import("@opensumi/ide-core-browser/lib/components").IconBaseProps<any> & React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>>;
    Icon: <T = any>(props: import("@opensumi/ide-core-browser/lib/components").IconProps<T>, ref: React.Ref<HTMLSpanElement>) => React.ReactElement;
    updateIconMap(prefix: string, customIconMap: {
        [iconKey: string]: string;
    }): void;
    getIconShapeClxList(options?: import("@opensumi/ide-core-browser/lib/components").IIconShapeOptions): string[];
    ROTATE_TYPE: typeof import("@opensumi/ide-core-browser/lib/components").ROTATE_TYPE;
    ANIM_TYPE: typeof import("@opensumi/ide-core-browser/lib/components").ANIM_TYPE;
    getKaitianIcon: typeof getIcon;
    updateKaitianIconMap: typeof import("@opensumi/ide-core-browser").updateIconMap;
    open<T = string>(message: string | React.ReactNode, type: import("@opensumi/ide-core-browser").MessageType, closable: boolean | undefined, key: string, buttons?: Array<string | import("@opensumi/ide-core-browser").IAction>, description?: string | React.ReactNode, duration?: number, onClose?: () => void): import("@opensumi/ide-core-browser").CancelablePromise<T | undefined> | undefined;
    close(key: string): void;
    update(key: string, message: string | React.ReactNode): void;
    notification: import("@opensumi/ide-components/lib/notification/notification").NotificationApi;
    PopoverTriggerType: typeof import("@opensumi/ide-components/lib/popover").PopoverTriggerType;
    PopoverPosition: typeof import("@opensumi/ide-components/lib/popover").PopoverPosition;
    Popover: React.FC<import("@opensumi/ide-components/lib/popover").IPopoverProps>;
    message: {
        success: (content: string | React.ReactNode, duration?: number) => Promise<void>;
        error: (content: string | React.ReactNode, duration?: number) => Promise<void>;
        info: (content: string | React.ReactNode, duration?: number) => Promise<void>;
        warning: (content: string | React.ReactNode, duration?: number) => Promise<void>;
        loading: (content: string | React.ReactNode, duration?: number) => Promise<void>;
    };
    Tooltip: React.FC<{
        title: string;
        delay?: number;
        children?: React.ReactNode;
    }>;
    RECYCLE_LIST_STABILIZATION_TIME: 500;
    RECYCLE_LIST_OVER_SCAN_COUNT: 50;
    RecycleList: React.FC<import("@opensumi/ide-core-browser/lib/components").IRecycleListProps>;
};
//# sourceMappingURL=index.d.ts.map