import "reflect-metadata"; declare type Decorated = (target: { [k: string]: any; }, propertyKey: string) => void; interface StatefulArgs { initialState: S; onUpdate?: (value: S, id?: string) => void; domain?: "GLOBAL" | "GUILD" | "USER"; } interface SetStateRequired { author: { id: string; }; guild: { id: string; } | null; } export declare type State = [() => S, (value: S) => void]; export default function Stateful({ initialState, domain, onUpdate }: StatefulArgs): Decorated; export declare function getStatefulFields(origin: { [k: string]: any; }): object; export declare function setState(origin: { [k: string]: any; }, data: SetStateRequired): Promise; export {}; //# sourceMappingURL=Stateful.d.ts.map