import React, { type ReactNode } from "react"; import { VibesDiyMountParams } from "../index.js"; import { useClerk } from "@clerk/react"; import { Database } from "@fireproof/use-fireproof"; import { ReturnOnFunc } from "@adviser/cement"; export declare const VIBE_METADATA_ERROR_CODES: { readonly TITLEID_EMPTY: "TITLEID_EMPTY"; readonly INSTALLID_EMPTY: "INSTALLID_EMPTY"; readonly TITLEID_INVALID_CHARS: "TITLEID_INVALID_CHARS"; readonly INSTALLID_INVALID_CHARS: "INSTALLID_INVALID_CHARS"; }; export declare class VibeMetadataValidationError extends Error { readonly code: string; constructor(message: string, code: string); } export interface Vibe extends VibesDiyMountParams { readonly clerk: ReturnType; sessionReady(): boolean; onDatabaseOpen: ReturnOnFunc<[_db: Database], unknown>; } export interface VibeContextProviderProps { readonly mountParams: VibesDiyMountParams; readonly children: ReactNode; } export declare function VibeContextProvider({ mountParams, children }: VibeContextProviderProps): React.JSX.Element; export declare function useVibeContext(): Vibe; declare const VibeMetadataSchema: import("arktype/internal/variants/object.ts").ObjectType<{ titleId: string; installId: string; }, {}>; export type VibeMetadata = typeof VibeMetadataSchema.infer; export declare function validateVibeMetadata(metadata: unknown): asserts metadata is VibeMetadata; export {};