/**
 * A function with an object as target.
 */
export declare type FnModelFn<T extends object, FN extends (...args: any[]) => any> = (target: T, ...args: Parameters<FN>) => ReturnType<FN>;
/**
 * Functional model action definition.
 */
export declare type FnModelActionDef = (...args: any[]) => any;
/**
 * An object with functional model action definitions.
 */
export interface FnModelActionsDef {
    [k: string]: FnModelActionDef;
}
/**
 * Functional model actions.
 */
export declare type FnModelActions<Data extends object, ActionsDef extends FnModelActionsDef> = {
    [k in keyof ActionsDef]: FnModelFn<Data, ActionsDef[k]>;
};
