import type { IServiceProvider } from 'angular';
import type { INestedState, StateConfigProvider } from '../navigation/state.provider';
export declare class ApplicationStateProvider implements IServiceProvider {
    private stateConfigProvider;
    private childStates;
    private detailStates;
    private insightStates;
    private insightState;
    static $inject: string[];
    constructor(stateConfigProvider: StateConfigProvider);
    /**
     * Adds a direct child to the application that does not use the Insight (i.e. inspector) views, e.g. tasks
     * @param state
     */
    addChildState(state: INestedState): void;
    /**
     * Adds a view that includes the nav, master, and detail sections, e.g. clusters
     * @param state
     */
    addInsightState(state: INestedState): void;
    /**
     * Adds an inspector view to all insight states. Adding an insight detail state makes that view available to all
     * parent insight views, so, for example, adding the load balancer details state makes it available to cluster,
     * firewall, and load balancer insight parent states
     * @param state
     */
    addInsightDetailState(state: INestedState): void;
    /**
     * Configures the application as a child view of the provided parent
     * @param parentState
     * @param mainView the ui-view container for the application
     * @param relativeUrl (optional) the prefix used for the application view
     */
    addParentState(parentState: INestedState, mainView: string, relativeUrl?: string): void;
    $get(): this;
}
export declare const APPLICATION_STATE_PROVIDER = "spinnaker.core.application.state.provider";
