/** @packageDocumentation
 * @module Picker
 */
import * as React from "react";
import { Id64String } from "@itwin/core-bentley";
import { IModelConnection, ViewState } from "@itwin/core-frontend";
import { UiEvent } from "@itwin/appui-abstract";
import { ListItem } from "./ListPicker";
/** [[ViewSelectorChangedEvent]] Args interface.
 * @beta
 */
export interface ViewSelectorChangedEventArgs {
    iModelConnection: IModelConnection;
    viewDefinitionId: Id64String;
    viewState: ViewState;
    name: string;
}
/** ViewSelector Changed Event class.
 * @beta
 */
export declare class ViewSelectorChangedEvent extends UiEvent<ViewSelectorChangedEventArgs> {
}
/** Properties for the [[ViewSelector]] component
 * @beta
 */
export interface ViewSelectorProps {
    imodel?: IModelConnection;
    listenForShowUpdates?: boolean;
    showSpatials: boolean;
    showDrawings: boolean;
    showSheets: boolean;
    showUnknown: boolean;
    searchBox?: boolean;
}
/** State for the [[ViewSelector]] component
 * @beta
 */
interface ViewSelectorState {
    items: ListItem[];
    title: string;
    initialized: boolean;
    showSpatials: boolean;
    showDrawings: boolean;
    showSheets: boolean;
    showUnknown: boolean;
    searchBox: boolean;
}
/** Default properties of [[ViewSelector]] component.
 * @beta
 */
export declare type ViewSelectorDefaultProps = Pick<ViewSelectorProps, "showSpatials" | "showDrawings" | "showSheets" | "showUnknown">;
/** View Selector React component
 * @beta
 */
export declare class ViewSelector extends React.Component<ViewSelectorProps, ViewSelectorState> {
    private static readonly _onViewSelectorShowUpdateEvent;
    private _removeShowUpdateListener?;
    private _isMounted;
    private _searchInput;
    static readonly defaultProps: ViewSelectorDefaultProps;
    /** Gets the [[ViewSelectorChangedEvent]] */
    static readonly onViewSelectorChangedEvent: ViewSelectorChangedEvent;
    /** Updates the ViewSelector show settings.
     */
    static updateShowSettings(showSpatials: boolean, showDrawings: boolean, showSheets: boolean, showUnknown: boolean): void;
    /** Creates a ViewSelector */
    constructor(props: ViewSelectorProps);
    componentDidMount(): Promise<void>;
    componentDidUpdate(prevProps: ViewSelectorProps): Promise<void>;
    componentWillUnmount(): void;
    private _handleViewSelectorShowUpdateEvent;
    private setStateContainers;
    /**
     * Query the views and set the initial state with the iModel's views.
     */
    loadViews(): Promise<void>;
    /**
     * Update state of the entries in the widget.
     * @param viewId Identifier for the relevant view
     */
    updateState(viewId?: any): Promise<void>;
    private _setEnabled;
    private _onExpanded;
    /**
     *  Renders ViewSelector component
     */
    render(): JSX.Element | null;
}
/** ViewSelector that is connected to the IModelConnection property in the Redux store. The application must set up the Redux store and include the FrameworkReducer.
 * @beta
 */
export declare const IModelConnectedViewSelector: import("react-redux").ConnectedComponent<typeof ViewSelector, any>;
export {};
//# sourceMappingURL=ViewSelector.d.ts.map