import { Rpc } from '../rpc/rpc';
import { RpcShellNavigateResult } from '../rpc/shell-navigate/rpc-shell-navigate-model';
export declare class ShellNavigationConnection {
    private rpc;
    /**
     * Initializes a new instance of the ShellNavigationConnection class.
     *
     * @param rpc the rpc object.
     */
    constructor(rpc: Rpc);
    /**
     * Navigate to the shell home page.
     *
     * @return Promise<RpcShellNavigateResult> the navigation result.
     */
    navigateHome(): Promise<RpcShellNavigateResult>;
    /**
     * Reload the shell.
     *
     * @return Promise<RpcShellNavigateResult> the navigation result.
     */
    navigateReload(): Promise<RpcShellNavigateResult>;
    /**
     * Navigate to a settings of gateway.
     *
     * @param name the name of setting of gateway.
     * @param nestedUrlAndOptions the nested URL and Options on the setting of gateway.
     * @return Promise<RpcShellNavigateResult> the navigation result.
     */
    navigateSettings(name: string, nestedUrlAndOptions?: string): Promise<RpcShellNavigateResult>;
    /**
     * Navigate to URL.
     *
     * @return Promise<RpcShellNavigateResult> the navigation result.
     */
    navigateUrl(url: string): Promise<RpcShellNavigateResult>;
    /**
     * Navigate a view by the shell.
     *
     * @param solution the solution - module name and entry point name.
     * @param tool the tool - module name and entry point name.
     * @param connection the connection - name and type.
     * @param connectionSettings the setting tab name, omit tabUrlName if goes to the first item.
     * @param reserved (deprecated - use tool parameters such as toolUrl, toolQueryParams and toolFragment)
     * @param settings the settings on the shell/gateway.
     * @param navigateNext the navigate next url.
     * @param reload the reload shell.
     * @param popoutOptions options indicating how to popout the navigation.
     * @return Promise<RpcShellNavigateResult> the navigation result.
     */
    navigate(solution?: {
        moduleName: string;
        entryPointName?: string;
    }, tool?: {
        moduleName: string;
        entryPointName?: string;
        toolUrl?: string;
        toolQueryParams?: string;
        toolFragment?: string;
    }, connection?: {
        name: string;
        type: string;
    }, connectionSettings?: {
        tabUrlName?: string;
    }, reserved?: string, settings?: {
        name: string;
        nestedUrlAndOptions?: string;
    }, navigateNext?: string, reload?: boolean, popoutOptions?: {
        configuration?: MsftSme.EnvironmentConfiguration;
    }): Promise<RpcShellNavigateResult>;
    /**
     * Navigate to a tool.
     *
     * @param solutionModuleName the solution module name.
     * @param solutionEntryPointName the solution entry point name.
     * @param toolModuleName the tool module name.
     * @param toolEntryPointName the tool entry point name.
     * @param connectionName the connection name.
     * @param connectionType the connection type.
     * @param toolUrl the nested url within the tool.
     * @param toolQueryParams the tool query parameters.
     * @param toolFragment the tool fragment.
     * @return Promise<RpcShellNavigateResult> the navigation result.
     */
    navigateTool(solutionModuleName: string, solutionEntryPointName: string, toolModuleName: string, toolEntryPointName: string, connectionName: string, connectionType: string, toolUrl?: string, toolQueryParams?: {
        [key: string]: any;
    }, toolFragment?: string): Promise<RpcShellNavigateResult>;
    /**
     * @deprecated
     * Navigate to a tool.
     *
     * @param solutionModuleName the solution module name.
     * @param solutionEntryPointName the solution entry point name.
     * @param toolModuleName the tool module name.
     * @param toolEntryPointName the tool entry point name.
     * @param connectionName the connection name.
     * @param connectionType the connection type.
     * @param toolNestedUrlAndOptions the nested url within the tool.
     * @return Promise<RpcShellNavigateResult> the navigation result.
     */
    navigateTool(solutionModuleName: string, solutionEntryPointName: string, toolModuleName: string, toolEntryPointName: string, connectionName: string, connectionType: string, toolNestedUrlAndOptions?: string): Promise<RpcShellNavigateResult>;
    /**
     * Navigate to a solution tool.
     *
     * @param solutionModuleName the solution module name.
     * @param solutionEntryPointName the solution entry point name.
     * @param toolModuleName the tool module name.
     * @param toolEntryPointName the tool entry point name.
     * @param toolUrl the nested url within the tool.
     * @param toolQueryParams the tool query parameters.
     * @param toolFragment the tool fragment.
     * @return Promise<RpcShellNavigateResult> the navigation result.
     */
    navigateSolutionTool(solutionModuleName: string, solutionEntryPointName: string, toolModuleName: string, toolEntryPointName: string, toolUrl?: string, toolQueryParams?: {
        [key: string]: string;
    }, toolFragment?: string): Promise<RpcShellNavigateResult>;
    /**
     * Navigate to a solution tool.
     *
     * @param solutionModuleName the solution module name.
     * @param solutionEntryPointName the solution entry point name.
     * @param toolModuleName the tool module name.
     * @param toolEntryPointName the tool entry point name.
     * @param toolNestedUrlAndOptions the nested url within the tool.
     * @return Promise<RpcShellNavigateResult> the navigation result.
     */
    navigateSolutionTool(solutionModuleName: string, solutionEntryPointName: string, toolModuleName: string, toolEntryPointName: string, toolNestedUrlAndOptions?: string): Promise<RpcShellNavigateResult>;
    /**
     * Navigate to a setting of a tool.
     *
     * @param solutionModuleName the solution module name.
     * @param solutionEntryPointName the solution entry point name.
     * @param connectionName the connection name.
     * @param connectionType the connection type.
     * @param tabUrlName the setting tab name, omit tabUrlName goes to the default setting item.
     */
    navigateToolSetting(solutionModuleName: string, solutionEntryPointName: string, connectionName: string, connectionType: string, tabUrlName?: string): Promise<RpcShellNavigateResult>;
}
