import { Store } from '@zedux/core'; import { AtomInstance } from '../classes/instances/AtomInstance'; import { AtomInstanceBase } from '../classes/instances/AtomInstanceBase'; import { AtomTemplateBase } from '../classes/templates/AtomTemplateBase'; import { AtomApi } from '../classes/AtomApi'; export declare type AtomApiGenericsPartial> = Omit & G; export declare type AnyAtomApiGenerics = { [K in keyof AtomGenerics]: any; }; export declare type AnyAtomGenerics = { [K in keyof AtomGenerics]: any; }; export declare type AnyAtomApi | 'any' = 'any'> = AtomApi ? AtomApiGenericsPartial : any>; export declare type AnyAtomInstance | 'any' = 'any'> = AtomInstance ? AtomGenericsPartial : any>; export declare type AnyAtomTemplate | 'any' = 'any'> = AtomTemplateBase ? AtomGenericsPartial : any, AnyAtomInstance>; export declare type AtomApiGenerics = Omit & { Store: Store | undefined; }; export declare type AtomGenericsToAtomApiGenerics = Omit & { Store: G['Store'] | undefined; }; export interface AtomGenerics { Exports: Record; Params: any[]; Promise: AtomApiPromise; State: any; Store: Store; } export declare type AtomGenericsPartial> = Omit & G; export declare type AtomApiPromise = Promise | undefined; export declare type AtomExportsType = A extends AtomTemplateBase ? G['Exports'] : A extends AtomInstance ? G['Exports'] : A extends AtomApi ? G['Exports'] : never; export declare type AtomInstanceType = A extends AtomTemplateBase ? T : never; export declare type AtomParamsType = A extends AtomTemplateBase> ? G['Params'] : A extends AtomInstance ? G['Params'] : never; export declare type AtomPromiseType = A extends AtomTemplateBase> ? G['Promise'] : A extends AtomInstance ? G['Promise'] : A extends AtomApi ? G['Promise'] : never; export declare type AtomStateType = A extends AtomTemplateBase> ? G['State'] : A extends AtomInstance ? G['State'] : A extends AtomApi ? G['State'] : never; export declare type AtomStoreType = A extends AtomTemplateBase> ? G['Store'] : A extends AtomInstance ? G['Store'] : A extends AtomApi ? G['Store'] : never; export declare type AtomTemplateType>>> = A extends AtomInstanceBase ? T : never;