import { Store, StoreStateType } from '@zedux/core'; import { AtomApi } from '../classes/AtomApi'; import { IonTemplate } from '../classes/templates/IonTemplate'; import { AtomConfig, AtomGetters, AtomApiPromise, IonStateFactory, PromiseState } from '../types/index'; export declare const ion: { = Record>(key: string, value: (getters: AtomGetters, ...params: Params) => AtomApi<{ Exports: Exports; Promise: any; State: Promise; Store: undefined; }>, config?: AtomConfig): IonTemplate<{ State: PromiseState; Params: Params; Exports: Exports; Store: Store>; Promise: Promise; }>; = Store, Params extends any[] = [], Exports extends Record = Record, PromiseType extends AtomApiPromise = undefined>(key: string, get: (getters: AtomGetters, ...params: Params) => StoreType | AtomApi<{ Exports: Exports; Promise: PromiseType; State: StoreStateType; Store: StoreType; }>, config?: AtomConfig>): IonTemplate<{ State: StoreStateType; Params: Params; Exports: Exports; Store: StoreType; Promise: PromiseType; }>; = Record, PromiseType extends AtomApiPromise = undefined>(key: string, get: (getters: AtomGetters, ...params: Params) => AtomApi<{ Exports: Exports; Promise: PromiseType; State: State; Store: undefined; }> | State, config?: AtomConfig): IonTemplate<{ State: State; Params: Params; Exports: Exports; Store: Store; Promise: PromiseType; }>; = Record, StoreType extends Store = Store, PromiseType extends AtomApiPromise = undefined>(key: string, get: IonStateFactory<{ State: State; Params: Params; Exports: Exports; Store: StoreType; Promise: PromiseType; }>, config?: AtomConfig): IonTemplate<{ State: State; Params: Params; Exports: Exports; Store: StoreType; Promise: PromiseType; }>; };