/** @packageDocumentation
 * @module ConfigurableUi
 */
/** Interface for a ConfigurableUi element
 * @public
 * @deprecated in 4.16.0. Used in a deprecated type {@link ConfigurableUiControlConstructor}.
 */
export interface ConfigurableUiElement {
    uniqueId: string;
    classId: string;
    name: string;
}
/** Information for creating a ConfigurableUi element
 * @public
 * @deprecated in 4.16.0. Used in a deprecated type {@link ConfigurableUiControlConstructor}.
 */
export declare class ConfigurableCreateInfo {
    readonly classId: string;
    readonly uniqueId: string;
    readonly id: string;
    constructor(classId: string, uniqueId: string, id: string);
}
/** The base class for all ConfigurableUi elements
 * @public
 * @deprecated in 4.16.0. Base class for a deprecated interface {@link ConfigurableUiElement}.
 */
export declare class ConfigurableBase implements ConfigurableUiElement {
    private _uniqueId;
    private _classId;
    private _name;
    protected _appDataOptions: any;
    constructor(info: ConfigurableCreateInfo, options: any);
    /** @internal */
    get uniqueId(): string;
    /** allow options set via appData to be seen by API calls */
    get applicationData(): any;
    /** Gets the class Id of configurable element */
    get classId(): string;
    /** Get internal name of configurable element. If no name is defined in configuration
     * then the name will match the UniqueId.
     */
    get name(): string;
}
/** The type of the ConfigurableUiControl.
 * @public
 * @deprecated in 4.16.0. Used in a deprecated class {@link ConfigurableUiControl}.
 */
export declare enum ConfigurableUiControlType {
    Content = "ContentControl",
    NavigationAid = "NavigationAidControl",
    StatusBarWidget = "StatusBarWidgetControl",
    ToolUiProvider = "ToolUiProvider",
    Viewport = "ViewportContentControl",
    Widget = "WidgetControl"
}
/** Prototype for ConfigurableUiControl constructor
 * @public
 * @deprecated in 4.16.0. Use React components instead.
 */
export type ConfigurableUiControlConstructor = new (info: ConfigurableCreateInfo, options: any) => ConfigurableUiElement;
/** The abstract base class for all Frontstage controls.
 * @note This is an abstract class which should not be derived from by the applications.
 * Instead, applications should derive from one of
 * [[ContentControl]],
 * [[ViewportContentControl]],
 * [[WidgetControl]],
 * [[StatusBarWidgetControl]] or
 * [[NavigationAidControl]].
 * @public
 * @deprecated in 4.16.0. Use React components returned by the control instead.
 */
export declare abstract class ConfigurableUiControl extends ConfigurableBase {
    private _cid;
    /** Creates an instance of ConfigurableUiControl.
     * @param info         An object that the subclass must pass to this base class.
     * @param options      Options provided to the control
     * @note Subclasses must pass all arguments to the base class and not add themselves
     * to any container - the control is added automatically.
     * @protected
     */
    constructor(info: ConfigurableCreateInfo, options: any);
    /** @internal
     */
    initialize(): void;
    /** Called to initialize the ConfigurableUiControl. */
    onInitialize(): void;
    /** Called when Frontstage is deactivated. */
    onFrontstageDeactivated(): void;
    /** Called when Frontstage is ready. */
    onFrontstageReady(): void;
    /** Returns the ID of this ConfigurableUiControl.
     */
    get controlId(): string;
    /** Get the type of this control.
     */
    abstract getType(): ConfigurableUiControlType;
    /** Returns a promise that resolves when the control is ready for usage.
     */
    get isReady(): Promise<void>;
}
//# sourceMappingURL=ConfigurableUiControl.d.ts.map