import { Elysia } from 'elysia';
type ScopedStateConfig<T> = {
    value: T;
    preserve?: boolean;
};
type ValueOnly<Setup extends Record<string, ScopedStateConfig<unknown>>> = {
    [K in keyof Setup]: Setup[K]['value'];
};
type ScopedRecord<Data extends Record<string, unknown>> = Record<string, Data>;
export declare const scopedState: <Setup extends Record<string, ScopedStateConfig<unknown>>>(setup: Setup) => Elysia<"", {
    decorator: {};
    store: {
        scoped: ScopedRecord<{ [K in keyof ValueOnly<Setup>]: ValueOnly<Setup>[K]; }>;
    };
    derive: {
        readonly scopedStore: { [K in keyof ValueOnly<Setup>]: ValueOnly<Setup>[K]; };
        readonly resetScopedStore: (ignorePreserve?: boolean) => void;
    };
    resolve: {};
}, {
    typebox: {};
    error: {};
}, {
    schema: import("elysia").MergeSchema<import("elysia").MergeSchema<{}, {}, "">, {}, "">;
    standaloneSchema: {};
    macro: {};
    macroFn: {};
    parser: {};
}, {}, {
    derive: {};
    resolve: {};
    schema: {};
    standaloneSchema: {};
}, {
    derive: {};
    resolve: {};
    schema: {};
    standaloneSchema: {};
}>;
export {};
