import { ApplicationDefinition } from '../api/contracts/fusion';
import { RuntimeMap } from '../api/contracts/runtime-map';
import { Dictionary, ReduxDispatch } from '../api/common';
import { MapInfo, IInitAppActionPayload, IGenericSubjectMapLayer } from './defs';
import { Client } from '../api/client';
import { IInitAsyncOptions } from './init';
import { ViewerInitCommand } from './init-command';
/**
 * @since 0.14
 */
export declare type SubjectLayerType = RuntimeMap | IGenericSubjectMapLayer;
/**
 * Default viewer init commmand
 *
 * @since 0.14
 */
export declare class DefaultViewerInitCommand extends ViewerInitCommand<SubjectLayerType> {
    private client;
    private options;
    constructor(dispatch: ReduxDispatch);
    attachClient(client: Client): void;
    protected isArbitraryCoordSys(subject: SubjectLayerType | undefined): boolean;
    /**
     * @override
     * @protected
     * @param {Dictionary<RuntimeMap>} mapsByName
     * @memberof MgViewerInitCommand
     */
    protected establishInitialMapNameAndSession(mapsByName: Dictionary<SubjectLayerType>): [string, string];
    private getDesiredTargetMapName;
    private initFromWebLayoutAsync;
    private createRuntimeMap;
    private describeRuntimeMap;
    private tryDescribeRuntimeMapAsync;
    private createRuntimeMapsAsync;
    private describeRuntimeMapStateless;
    /**
     * @override
     * @protected
     * @param {ApplicationDefinition} appDef
     * @param {Dictionary<SubjectLayerType>} mapsByName
     * @param {*} config
     * @param {string[]} warnings
     * @returns {Dictionary<MapInfo>}
     * @memberof MgViewerInitCommand
     */
    protected setupMaps(appDef: ApplicationDefinition, mapsByName: Dictionary<SubjectLayerType>, config: any, warnings: string[], locale: string): Dictionary<MapInfo>;
    private initFromAppDefAsync;
    private sessionAcquiredAsync;
    runAsync(options: IInitAsyncOptions): Promise<IInitAppActionPayload>;
}
