import React from 'react';
import type { ActionObject, IScopedContext } from 'jamis-core';
import { ScopedContext } from 'jamis-core';
import type { DropDownButtonProps, DropDownButtonRendererProps, DropdownItem } from './types';
interface DropDownButtonState {
    isOpened: boolean;
}
export default class DropDownButton<T extends DropDownButtonProps> extends React.Component<T, DropDownButtonState> {
    static defaultProps: Partial<DropDownButtonProps>;
    target: any;
    timer: ReturnType<typeof setTimeout>;
    openTimer: ReturnType<typeof setTimeout>;
    constructor(props: T);
    componentDidMount(): void;
    componentDidUpdate(prevProps: Readonly<DropDownButtonProps>): void;
    domRef: (ref: any) => void;
    toogle: (e: React.MouseEvent<any>) => void;
    open: () => Promise<void>;
    close: () => void;
    keepOpen: (ev: React.UIEvent) => void;
    doAction(action: ActionObject, args?: Record<string, any>): void;
    renderButton(menuItem: DropdownItem, index: number | string, depth?: number): React.ReactNode;
    renderOuter(): JSX.Element | null;
    render(): JSX.Element;
}
export declare class DropDownButtonRenderer extends DropDownButton<DropDownButtonRendererProps> {
    static contextType: React.Context<IScopedContext<import("jamis-core").ScopedComponentType>>;
    context: React.ContextType<typeof ScopedContext>;
    constructor(props: DropDownButtonRendererProps, context: IScopedContext);
    componentWillUnmount(): void;
}
export {};
