import { MainMustardApp, MustardName, MustardURL } from '../typings';
export interface MustardStateOptions {
    origin?: MustardURL;
    flushed?: boolean;
}
export interface MustardState extends MustardStateOptions {
    data?: unknown;
    index: number;
}
export type State = {
    [key: string]: MustardState;
} & {
    isMustard: 'MustardApp';
    [MainMustardApp]: undefined;
};
export declare function encodeState(data: unknown, appName: MustardName, options?: MustardStateOptions): {
    [x: string]: MustardState | {
        data: unknown;
        index: number;
        origin: string;
        flushed: boolean;
    };
    isMustard: "MustardApp";
    main: undefined;
};
export declare function decodeState(appName: MustardName): MustardState | undefined;
export declare function getAllAppState(): State;
export declare function getStateIndex(appName: MustardName): number;
export declare function initState(appName: MustardName, state: unknown, unused: string, url: string): void;
export declare function navigateTo(appName: MustardName, type: 'pushState' | 'replaceState', flushed?: boolean): (_state: unknown, _unused: string, _url?: string | URL) => any;
export declare function proxyHistory(appName: MustardName): History;
export declare function changeHistoryPropety(): void;
