ui-ingredients
Version:
Headless component library for Svelte powered by zag
14 lines (13 loc) • 751 B
TypeScript
import type { GenericObject } from './types.js';
type HasContext = () => boolean;
type SetContext<T> = (context: T | (() => T)) => void;
type GetContext<T, Strict extends boolean> = () => [Strict] extends [true] ? T : T | undefined;
type CreateContextReturn<T, Strict extends boolean> = [
getContext: GetContext<T, Strict>,
setContext: SetContext<T>,
hasContext: HasContext
];
export declare function createContext<T extends GenericObject>(key: string, strict: true): CreateContextReturn<T, true>;
export declare function createContext<T extends GenericObject>(key: string, strict: false): CreateContextReturn<T, false>;
export declare function createContext<T extends GenericObject>(key: string): CreateContextReturn<T, true>;
export {};