type Callback = () => void;
interface SignalOptions<T> {
    persistKey?: string;
    encrypted?: boolean;
    secret?: string;
}
declare function createSignal<T>(initialValue: T, options?: SignalOptions<T>): {
    get: () => T;
    set: (next: T | ((prev: T) => T)) => void;
    subscribe: (cb: Callback) => () => boolean | undefined;
};
declare function useSignal<T>(signal: {
    get: () => T;
    subscribe: (cb: () => void) => () => void;
}): T;

export { createSignal, useSignal };
