///
import { IncomingMessage } from "http";
import { Provider } from "react";
import { URLParams } from "./index";
import { ContextValueType, GlobalAppStatePropertySetter, GlobalAppStatePropertyParameters, DehydratedGlobalAppStateProperty, HydratedGlobalAppStatePropertyType } from "./GlobalAppStateProperty";
declare type DehydratedProperties = GlobalAppStatePropertyParameters[];
export interface DehydratedState {
[key: string]: DehydratedGlobalAppStateProperty;
}
export interface GlobalAppStateProxy {
[key: string]: HydratedGlobalAppStatePropertyType;
}
export interface HydratedState {
globalAppState: GlobalAppStateProxy;
_mounted: boolean;
_ready: boolean;
[key: string]: ContextValueType;
}
export interface PropertySettersUnderConstruction {
[key: string]: GlobalAppStatePropertySetter;
}
declare class GlobalAppState {
private readonly properties;
readonly propertyKeys: string[];
readonly propertyKeysPlural: string[];
readonly setterNames: string[];
constructor(properties: DehydratedProperties);
getKeysForURLParamListeningProperties(): string[];
getContextKeysAndProviders(): [string[], Provider[]];
initializeStateServerSide(req: IncomingMessage): Promise;
initializeStateClientSidePhase1(dehydratedState: DehydratedState): HydratedState;
initializeStateClientSidePhase2(hydratedState: HydratedState): Promise;
onURLParamCallback(state: HydratedState, urlParams: URLParams, justReady: boolean): Promise;
getSetters(): PropertySettersUnderConstruction;
}
export default GlobalAppState;
//# sourceMappingURL=GlobalAppState.d.ts.map