import type { OrganizationAdvertising, StreamSettings, OrganizationSettings, User, UserSettings, EventSummary } from '@streamlayer/sdk-web-types'; import { AbstractStore } from '@streamlayer/sdk-web-interfaces'; import { Transport } from '@streamlayer/sdk-web-api'; import { ReadableAtom } from 'nanostores'; import { FetcherValue } from '@nanostores/query'; import { initializeStore, CoreStatus } from './init'; export { CoreStatus }; export interface CoreStoreInterface { enabled?: 'on'; status: string; userKey?: string; userToken?: string; organizationSettings?: OrganizationSettings & { id: string; }; organizationAdvertising?: OrganizationAdvertising; streamSettings?: StreamSettings; streamSummary?: EventSummary; user?: User; userSettings?: UserSettings; providerStreamId?: string; slStreamId?: string; } export type StoreObj = ReturnType; export type CoreStores = { [Index in keyof StoreObj]: ReturnType; }; export type CoreStoresValues = { [Index in keyof StoreObj]: ReturnType['value']; }; export type CoreStoreInstance = ReadableAtom; /** * @description `CoreStore` is a store that contains all the necessary data for the SDK to work. * `CoreStore` is a singleton and is created when the SDK is initialized. It includes the following stores: * - `enabled` - the status of the SDK. The SDK is enabled when the `on` value is set. * - `status` - the status of the SDK. Can be one of the following values: `disabled`, `initialization`, `ready`, `failed`, `suspended`. * - `userKey` - the user key provided by the host. * - `userToken` - the user token received from the StreamLayer after login. * - `organizationSettings` - the organization settings. * - `organizationAdvertising` - the organization advertising. * - `streamSettings` - the stream settings. * - `user` - the user data. * - `userSettings` - the user settings. * - `providerStreamId` - the event id provided by the host. * - `slStreamId` - the event id received from the StreamLayer, resolved by the `providerStreamId`. */ export declare class CoreStore extends AbstractStore { private stores; constructor(transport: Transport); getValue(): unknown; getValues(): { readonly enabled: import("@streamlayer/sdk-web-interfaces").SingleStore & object>; readonly status: import("@streamlayer/sdk-web-interfaces").SingleStore & object>; readonly providerStreamId: import("@streamlayer/sdk-web-interfaces").SingleStore & object>; readonly slStreamId: import("@streamlayer/sdk-web-interfaces").ApiStore>; readonly streamSettings: import("@streamlayer/sdk-web-interfaces").ApiStore>; readonly streamSummary: import("@streamlayer/sdk-web-interfaces").ApiStore>; readonly user: import("@streamlayer/sdk-web-interfaces").ApiStore>; readonly userKey: import("@streamlayer/sdk-web-interfaces").SingleStore & object>; readonly userToken: import("@streamlayer/sdk-web-interfaces").SingleStore & object>; readonly userSettings: import("@streamlayer/sdk-web-interfaces").ApiStore>; readonly organizationSettings: import("@streamlayer/sdk-web-interfaces").ApiStore<{ id: string; $typeName?: "streamlayer.sdkSettings.OrganizationSettings" | undefined; $unknown?: import("@bufbuild/protobuf").UnknownField[]; overlays?: import("@streamlayer/sl-eslib/sdkSettings/sdkSettings.common_pb").SdkOverlay[] | undefined; buttonIcon?: string | undefined; tinodeHost?: string | undefined; audience?: string | undefined; name?: string | undefined; provider?: string | undefined; primaryColor?: string | undefined; secondaryColor?: string | undefined; moderationPrimaryColor?: string | undefined; linkShareIcon?: string | undefined; linkShareText?: string | undefined; brandDefaults?: import("@streamlayer/sl-eslib/sdkSettings/sdkSettings.common_pb").BrandDefaults; pub?: import("@streamlayer/sl-eslib/sdkSettings/sdkSettings.common_pb").JWK; getstream?: import("@streamlayer/sl-eslib/sdkSettings/sdkSettings.common_pb").GetStreamSettingsClient; publicName?: import("@streamlayer/sl-eslib/sdkSettings/sdkSettings.common_pb").PublicName | undefined; analyticsVersion?: import("@streamlayer/sl-eslib/sdkSettings/sdkSettings.common_pb").AnalyticsVersion | undefined; } | undefined, import("@nanostores/query").FetcherStore<{ id: string; $typeName?: "streamlayer.sdkSettings.OrganizationSettings" | undefined; $unknown?: import("@bufbuild/protobuf").UnknownField[]; overlays?: import("@streamlayer/sl-eslib/sdkSettings/sdkSettings.common_pb").SdkOverlay[] | undefined; buttonIcon?: string | undefined; tinodeHost?: string | undefined; audience?: string | undefined; name?: string | undefined; provider?: string | undefined; primaryColor?: string | undefined; secondaryColor?: string | undefined; moderationPrimaryColor?: string | undefined; linkShareIcon?: string | undefined; linkShareText?: string | undefined; brandDefaults?: import("@streamlayer/sl-eslib/sdkSettings/sdkSettings.common_pb").BrandDefaults; pub?: import("@streamlayer/sl-eslib/sdkSettings/sdkSettings.common_pb").JWK; getstream?: import("@streamlayer/sl-eslib/sdkSettings/sdkSettings.common_pb").GetStreamSettingsClient; publicName?: import("@streamlayer/sl-eslib/sdkSettings/sdkSettings.common_pb").PublicName | undefined; analyticsVersion?: import("@streamlayer/sl-eslib/sdkSettings/sdkSettings.common_pb").AnalyticsVersion | undefined; } | undefined, any>>; readonly organizationAdvertising: import("@streamlayer/sdk-web-interfaces").ApiStore>; }; setValue(): void; subscribe: (subscribes: Partial) => void; unsubscribe: () => void; } export type StoreListeners = { [Index in keyof StoreObj]: (params: FetcherValue) => void; };