import type { Schema } from 'zod';
type FormStoreOptions<T> = {
    schema?: Schema<T>;
};
export default function formStore<T = any>(initialState: T, options?: FormStoreOptions<T>): [{
    subscribe: (this: void, run: import("svelte/store").Subscriber<T>, invalidate?: (value?: T) => void) => import("svelte/store").Unsubscriber;
}, {
    set(newState: any): void;
    /** Apply draft to state after verifying with schema (if available).  Append change to undo stack */
    commit(): boolean;
    /** Revert draft to last committed state */
    revert(): void;
    /** Revert draft and state to initial state */
    revertAll(): void;
    /** Undo last committed change */
    undo(): void;
    /** Refresh `current` draft value (un-proxied) */
    refresh(): void;
    current: import("svelte/store").Writable<T>;
    update(this: void, updater: import("svelte/store").Updater<import("immer").Draft<T>>): void;
    subscribe(this: void, run: import("svelte/store").Subscriber<import("immer").Draft<T>>, invalidate?: (value?: import("immer").Draft<T>) => void): import("svelte/store").Unsubscriber;
}, {
    subscribe: (this: void, run: import("svelte/store").Subscriber<{
        [key: string]: string;
    }>, invalidate?: (value?: {
        [key: string]: string;
    }) => void) => import("svelte/store").Unsubscriber;
}];
export {};
