@baqhub/sdk-react
Version:
The official React SDK for the BAQ federated app platform.
37 lines (36 loc) • 3.04 kB
TypeScript
import { AnyRecord } from "@baqhub/sdk";
import { StoreContextProps } from "./storeContext.js";
export declare function buildAccessors(entity: string, proxyEntity: string): {
recordByKey: (getState: () => import("./storeContext.js").EntityRecordsState<AnyRecord>) => <Q extends AnyRecord>(key: import("@baqhub/sdk").RecordKey<Q>) => Extract<AnyRecord, Q>;
findRecordByKey: (getState: () => import("./storeContext.js").EntityRecordsState<AnyRecord>) => <Q extends AnyRecord>(key: import("@baqhub/sdk").RecordKey<Q>) => Extract<AnyRecord, Q> | undefined;
findRecordByQuery: (getState: () => import("./storeContext.js").EntityRecordsState<AnyRecord>) => <Q extends AnyRecord>(query: import("@baqhub/sdk").Query<Q>) => Q | undefined;
findEntityRecord: (getState: () => import("./storeContext.js").EntityRecordsState<AnyRecord>) => (targetEntity: string) => import("@baqhub/sdk").EntityRecord | undefined;
findStandingDecision: (getState: () => import("./storeContext.js").EntityRecordsState<AnyRecord>) => (publisherEntity: string) => `${import("@baqhub/sdk").StandingDecision}`;
};
export declare function buildHelpers<T extends AnyRecord>(store: StoreContextProps<T>, accessors: ReturnType<typeof buildAccessors>, proxyEntity: string): {
isAuthenticated: boolean;
entity: string;
proxyEntity: string;
discover: (entity: string, signal?: AbortSignal) => Promise<import("@baqhub/sdk").EntityRecord>;
downloadBlob: (record: AnyRecord, blob: import("@baqhub/sdk").AnyBlobLink, signal?: AbortSignal) => Promise<Blob>;
recordByVersion: <Q extends T>(version: import("@baqhub/sdk").VersionHash<Q>) => Extract<T, Q>;
recordByKey: <Q extends AnyRecord>(key: import("@baqhub/sdk").RecordKey<Q>) => Extract<AnyRecord, Q>;
findRecordByKey: <Q extends AnyRecord>(key: import("@baqhub/sdk").RecordKey<Q>) => Extract<AnyRecord, Q> | undefined;
findRecordByQuery: <Q extends AnyRecord>(query: import("@baqhub/sdk").Query<Q>) => Q | undefined;
findEntityRecord: (targetEntity: string) => import("@baqhub/sdk").EntityRecord | undefined;
findStandingDecision: (publisherEntity: string) => `${import("@baqhub/sdk").StandingDecision}`;
updateStandingDecision: (publisherEntity: string, decision: import("@baqhub/sdk").StandingDecision) => void;
updateRecords: import("./storeTypes.js").UpdateRecords<T>;
uploadBlob: (blob: Blob, signal?: AbortSignal) => Promise<import("@baqhub/sdk").BlobResponse>;
buildBlobUrl: <R extends T>(record: R, blob: import("@baqhub/sdk").AnyBlobLink, expiresInSeconds?: number) => string;
onDisconnectRequest: import("@baqhub/sdk").Handler;
};
export interface ProxyStoreContextProps<T extends AnyRecord> {
proxyEntity: string;
accessors: ReturnType<typeof buildAccessors>;
helpers: ReturnType<typeof buildHelpers<T>>;
}
export declare function buildProxyStoreContext<T extends AnyRecord>(): {
ProxyStoreContext: import("react").Context<ProxyStoreContextProps<T> | undefined>;
useProxyStoreContext: () => ProxyStoreContextProps<T>;
};