/// <reference path="../../../../vendor/i18next.d.ts" />
//@ts-ignore
import { i18n as i18nInstance } from 'i18next';
//@ts-ignore
import React, { Component } from 'react';
//@ts-ignore
import { Icon, Size, ToolbarStatus } from '@grapecity/core-ui';
import { ChangedEventArgs, ReportViewer } from '../../control';
import { MouseMode, ViewerStatus, ZoomSettings } from '../DocumentViewer';
import { ZoomControlProps } from './controls/Zoom';
/** Defines the toolbar item settings and behavior. */
export type ToolbarItem = {
    key: string;
    /**
     * @deprecated use icon instead
     */
    iconCssClass?: string;
    icon?: Icon;
    text?: string;
    title?: string;
    checked?: boolean;
    enabled?: boolean;
    action?: (curr?: ToolbarItem) => Partial<ToolbarItem> | void;
    onUpdate?: (args: ChangedEventArgs, curr: ToolbarItem) => Partial<ToolbarItem> | void;
};
/** Describes the toolbar items layout (order and visibility) for different view models. */
export type ToolbarLayout = {
    /** Default (desktop) view mode. Also applied when other modes are not specified. */
    default?: string[];
    /** The layout for the full-screen mode. */
    fullscreen?: string[];
    /** The toolbar layout for mobile devices. */
    mobile?: string[];
};
/** @hidden */
export interface ToolbarViewProps {
    viewer: ReportViewer;
    mobileView: boolean;
    i18n: i18nInstance;
    size: Size;
    zoomOptions: ZoomControlProps['options'];
    onToggle?: (status: ToolbarStatus) => void;
}
declare const canGoHistoryDefault: {
    Parent: boolean;
    Back: boolean;
    Fwd: boolean;
};
/** @hidden */
interface ToolbarViewState {
    readonly items: ToolbarItem[];
    readonly layout?: ToolbarLayout;
    readonly status: ViewerStatus;
    readonly fullscreen: boolean;
    readonly zoom: ZoomSettings;
    readonly mouseMode: MouseMode;
    readonly navigation: {
        readonly hasView: boolean;
        readonly canGoHistory: typeof canGoHistoryDefault;
        readonly canRefresh: boolean;
        readonly canGoForward: boolean;
        readonly canGoBackward: boolean;
        readonly pageIndex: number;
        readonly pageCount: number;
    };
}
/** @hidden */
export declare class ToolbarView extends Component<ToolbarViewProps, ToolbarViewState> {
    private readonly _commands;
    private _lastViewerState;
    constructor(props: ToolbarViewProps);
    state: ToolbarViewState;
    private generateUpdateObject;
    private onStateChange;
    private onNavigationBtnClick;
    private onHistoryBtnClick;
    private onPageInputFocus;
    private navigateTo;
    private onPageInputBlur;
    private onPageInputPress;
    private onRefresh;
    private onFullscreenToggle;
    private onZoomChange;
    private onSetMouseMode;
    addItem: (item: ToolbarItem) => void;
    removeItem: (key: string) => void;
    updateItem: (key: string, itemUpdate?: Partial<ToolbarItem>) => void;
    private onButtonItemClick;
    private getItemsDictionary;
    updateLayout: (layout: ToolbarLayout) => void;
    static builtinToolbar: string[];
    /** Gets the content (item keys) of the default toolbar. It includes all user items. */
    getDefaultToolbarItems: () => string[];
//@ts-ignore
//@ts-ignore
    render(): React.JSX.Element;
}
export {};
