@furystack/shades
Version:
Google Authentication Provider for FuryStack
38 lines • 2.1 kB
TypeScript
import { type Injector } from '@furystack/inject';
import { deserializeQueryString as defaultDeserializeQueryString, serializeToQueryString as defaultSerializeToQueryString } from '@furystack/rest';
import { ObservableValue } from '@furystack/utils';
export declare class LocationService implements Disposable {
private readonly serializeToQueryString;
readonly deserializeQueryString: (fullQueryString: string) => Record<string, unknown>;
constructor(serializeToQueryString?: <T extends object>(queryObject: T) => string, deserializeQueryString?: (fullQueryString: string) => Record<string, unknown>);
private originalPushState;
private originalReplaceState;
[Symbol.dispose](): void;
/**
* Observable value that will be updated when the location pathname (e.g. /page/1) changes
*/
onLocationPathChanged: ObservableValue<string>;
/**
* Observable value that will be updated when the location hash (e.g. #hash) changes
*/
onLocationHashChanged: ObservableValue<string>;
/**
* Observable value that will be updated when the location search (e.g. ?search=1) changes
*/
onLocationSearchChanged: ObservableValue<string>;
onDeserializedLocationSearchChanged: ObservableValue<any>;
locationDeserializerObserver: import("@furystack/utils").ValueObserver<string>;
updateState: () => void;
readonly searchParamObservables: Map<string, ObservableValue<any>>;
/**
* Gets or creates an observable for a search parameter
* @param key The search param key (e.g. ?search=1 -> search)
* @param defaultValue The default value if not provided
* @returns An observable with the current value (or default value) of the search param
*/
useSearchParam<T>(key: string, defaultValue: T): ObservableValue<T>;
private popStateListener;
private hashChangeListener;
}
export declare const useCustomSearchStateSerializer: (injector: Injector, serialize: typeof defaultSerializeToQueryString, deserialize: typeof defaultDeserializeQueryString) => void;
//# sourceMappingURL=location-service.d.ts.map