import { Ref, ComponentPublicInstance } from "vue"; import { DeepPartial } from '../utils/api'; export interface AxiosResponse { result: number; data: T; message?: string; loginUrl?: string; } export interface ConfigReducer { (...payload: any): any; } export interface ConfigReducers { [key: string]: ConfigReducer; } export interface ConfigEffect { (...payload: any): any; } export interface ConfigEffects { [key: string]: ConfigEffect; } export interface Config { state: Record; reducers: ConfigReducers; effects: ConfigEffects; getters?: Record; } export interface BuildInReducers { setValue: (key: K, value: S[K]) => void; composeState: (key: K, value: Partial) => void; setValues: (state: Partial) => void; reset: (key1?: K, key2?: K1, key3?: K2) => void; composeDeep: (key: K, value: DeepPartial) => void; forceReset: (key1?: K, key2?: K1, key3?: K2) => void; } export declare type ModelReducers = CRS & BuildInReducers; export declare type LoadingState = '' | 'pending' | 'reject'; export declare type ModelEffect = CE extends (...payload: infer P) => infer R ? ((...payload: P) => R) & { loading: Ref; message: Ref; } : CE; export declare type ModelEffects = { [K in keyof CES]: ModelEffect; }; export interface Model { state: S extends undefined ? C['state'] : S; reducers: R extends undefined ? C['reducers'] extends ConfigReducers ? ModelReducers : BuildInReducers : R; effects: E extends undefined ? (C['effects'] extends ConfigEffects ? ModelEffects : {}) : E; getters: G extends undefined ? (C['getters'] extends Record ? C['getters'] : C) : G; } export interface createFatory> { (arg0?: T, ...rest: any): Config; } export declare type ContextCreateData = Model>; export declare type ContextData = Model; export interface ModuleConfig { responseCheck: (res: AxiosResponse['data']) => boolean; ajax?: any; callBackParams: (res: any) => any; effectiveParams: (res: any) => any; } interface PluginItem

any = new (...args: any) => any> { plugin: P; params?: ConstructorParameters

[1]; } export declare type Plugins = Array; export interface ProviderConfig { moduleName: string; strict: boolean; plugins: Plugins; } export interface ConfigurableWindow { window?: Window; } export declare const defaultWindow: (Window & typeof globalThis) | undefined; export interface ConfigurableDocument { document?: Document; } export declare type Equal = keyof A extends keyof B ? [A] extends [B] ? [B] extends [A] ? true : false : false : false; export {};