import { $REFRESH, type Computed } from "../core/index.js";
import { type ProjectionOptions, type Store } from "./store.js";
export declare function createProjectionInternal<T extends object = {}>(fn: (draft: T) => void | T | Promise<void | T> | AsyncIterable<void | T>, initialValue?: T, options?: ProjectionOptions): {
    store: Store<T> & {
        [$REFRESH]: any;
    };
    node: Computed<void | T>;
};
/**
 * Creates a mutable derived store (projection). The derive function receives a mutable
 * draft and can mutate it directly or return a new value for reconciliation.
 *
 * ```typescript
 * const store = createProjection<T>(fn, initialValue?, options?: ProjectionOptions);
 * ```
 * @param fn a function that receives the current draft and mutates it or returns new data
 * @param initialValue the initial store value (defaults to `{}`)
 * @param options `ProjectionOptions` -- name, key, all
 *
 * @see {@link https://github.com/solidjs/x-reactivity#createprojection}
 */
export declare function createProjection<T extends object = {}>(fn: (draft: T) => void | T | Promise<void | T> | AsyncIterable<void | T>, initialValue?: T, options?: ProjectionOptions): Store<T> & {
    [$REFRESH]: any;
};
export declare function createWriteTraps(isActive?: () => boolean): ProxyHandler<any>;
export declare const writeTraps: ProxyHandler<any>;
