import type { App } from "../app/App"; import { StateConstructor, StateRunModeEnum, StateRunResultEnum, StateSetupGS } from "./StateContractsGS"; /** State base and the only public facade for state configuration and execution. */ export declare abstract class StateGS { static DefaultServerCacheMinutes: number; /** Whether Server App replaces this route implementation with an SPA shell placeholder. */ static readonly IsPrivate: boolean; /** Configure and seal the state registry for the current application exactly once. */ static Configure(configure: (states: StateSetupGS) => void): void; static Run(constructor: StateConstructor, args?: any, withHistory?: boolean): Promise; static RunInstance(state: StateGS, args?: any, withHistory?: boolean): Promise; static RunByName(stateName: string, args?: any, withHistory?: boolean): Promise; static RunByUrl(event?: Event, withHistory?: boolean): Promise; static RunByUrlArgs(args: Record, _search?: string, event?: Event, withHistory?: boolean): Promise; static BuildUrl(stateName: string, args?: Record): string; static get ActiveState(): StateGS | undefined; static get UrlStateArgName(): string; static get DefaultStateName(): string; static get State404Name(): string; static get UrlPathName(): string; static get UrlFullPath(): string; private _name; private _title; private _active; private _cachePolicyResolved; protected readonly _urlArgs: Record; private readonly _app?; readonly inHistory: boolean; serverCacheMinutes: number; description: string; canonicalUrl: string; robots: string; protected constructor(title: string, inHistory?: boolean); get name(): string; get title(): string; set title(value: string); get isActive(): boolean; get urlArgs(): Readonly>; /** Application captured when the state was created. Projects may override this getter to narrow its type. */ protected get app(): App | undefined; protected overrideName(name: string): void; preStart(_mode: StateRunModeEnum, _args?: any): Promise; start(_args?: any): Promise; afterStart(_mode: StateRunModeEnum, _args?: any): Promise; stop(): Promise; updateUrl(): void; getUrlArgs(): string; /** Add or replace one state-owned head tag by its stable key. */ setHeadTag(key: string, tagName: "meta" | "link" | "script", attributes?: Readonly>, textContent?: string): void; /** Stop emitting the state-owned head tag with this key. */ removeHeadTag(key: string): void; private requireApp; }