import { App } from "../../App";
import { AtomUri } from "../../core/AtomUri";
import { IDisposable, INotifyPropertyChanged } from "../../core/types";
import { AtomControl } from "./AtomControl";
export interface IPageItem {
    url: string;
    page: AtomControl;
    scrollY: number;
}
/**
 * Creates and hosts an instance of AtomControl available at given URL. Query string parameters
 * from the url will be passed to view model as initial property values.
 *
 * By default stack is turned off, so elements and controls will be destroyed when new control is hosted.
 */
export declare class AtomFrame extends AtomControl implements INotifyPropertyChanged {
    stack: IPageItem[];
    readonly canGoBack: boolean;
    name: string;
    keepStack: boolean;
    current: AtomControl;
    pagePresenter: HTMLElement;
    currentDisposable: IDisposable;
    backCommand: () => void;
    saveScrollPosition: boolean;
    private mUrl;
    url: string;
    private navigationService;
    constructor(app: App, e?: HTMLElement);
    onBackCommand(): Promise<void>;
    /**
     * This will pop page from the stack and set as current
     * @param windowClosed true if current page was closed by User Action
     */
    popStack(windowClosed?: boolean): void;
    canChange(): Promise<boolean>;
    push(ctrl: AtomControl): void;
    load(url: AtomUri, clearHistory?: boolean): Promise<AtomControl>;
    toUpperCase(s: string): string;
    protected setUrl(urlString: string): void;
    protected loadForReturn(url: AtomUri, clearHistory?: boolean): Promise<any>;
    protected clearStack(): void;
    protected preCreate(): void;
}
//# sourceMappingURL=AtomFrame.d.ts.map