/** @packageDocumentation
 * @module ContentView
 */
import * as React from "react";
import { Id64String } from "@itwin/core-bentley";
import { IModelConnection, ScreenViewport, ViewState } from "@itwin/core-frontend";
import { UiEvent } from "@itwin/appui-abstract";
import { ConfigurableCreateInfo, ConfigurableUiControl, ConfigurableUiControlType } from "../configurableui/ConfigurableUiControl";
/** ControlControl Activated Event Args interface.
 * @public
 */
export interface ContentControlActivatedEventArgs {
    activeContentControl: ContentControl;
    oldContentControl?: ContentControl;
}
/** ContentControl Activated Event class.
 * @public
 */
export declare class ContentControlActivatedEvent extends UiEvent<ContentControlActivatedEventArgs> {
}
/** Interface to be implemented when the ContentControl supports ViewSelector changes
 * @public
 */
export interface SupportsViewSelectorChange {
    /** Returns true if this control supports reacting to ViewSelector changes. */
    supportsViewSelectorChange: boolean;
    /** Process a ViewSelector change. */
    processViewSelectorChange(iModel: IModelConnection, viewDefinitionId: Id64String, viewState: ViewState, name: string): Promise<void>;
}
/** The base class for Frontstage content controls.
 * @public
 */
export declare class ContentControl extends ConfigurableUiControl {
    protected _reactNode: React.ReactNode;
    private _keyAdded;
    /** Creates an instance of ContentControl.
     * @param info         An object that the subclass must pass to this base class.
     * @param options      Options provided via the applicationData in a [[ContentProps]].
     */
    constructor(info: ConfigurableCreateInfo, options: any);
    /** Called when this ContentControl is activated */
    onActivated(): void;
    /** Called when this ContentControl is deactivated */
    onDeactivated(): void;
    /** Gets the type of ConfigurableUiControl, which is 'Content' in this case */
    getType(): ConfigurableUiControlType;
    /** Returns true if this control is a Viewport control. */
    get isViewport(): boolean;
    /** Returns the ScreenViewport if isViewport is true */
    get viewport(): ScreenViewport | undefined;
    protected getKeyedReactNode(): React.ReactNode;
    protected getReactNode(): React.ReactNode;
    /** The React node associated with this control. */
    get reactNode(): React.ReactNode;
    set reactNode(r: React.ReactNode);
    /** Get the NavigationAidControl associated with this ContentControl */
    get navigationAidControl(): string;
}
/**
 * @beta
 */
export declare class FloatingContentControl extends ContentControl {
    constructor(uniqueId: string, name: string, node: React.ReactNode);
}
//# sourceMappingURL=ContentControl.d.ts.map