import { InjectionKey, UnwrapNestedRefs } from 'vue';
/**
 * Определить Store
 *
 * Следует определять на уровне корневого компонента, использующего Store
 * @param injectionKey - InjectionKey для provide / inject в области компонента
 * @param setup - Нстройки Store, см. https://pinia.vuejs.org/core-concepts/#Setup-Stores
 * @param $id - строковой id Store, используется в плагинах
 * @param options - настройки Store, используются в плагинах
 */
export declare const defineStore: <T extends object>(injectionKey: InjectionKey<UnwrapNestedRefs<T>>, setup: () => T | object, $id?: string, options?: object) => UnwrapNestedRefs<T> & Store;
/**
 * Получить State компонента
 * @param injectionKey - InjectionKey для provide / inject в области компонента
 * @return - State компонента
 */
export declare const useStore: <T>(injectionKey: InjectionKey<T>) => T & Store;
/**
 * Легковесный аналог объекта Store Pinia для совместимости с плагинами Pinia
 */
export interface Store {
    /**
     * Строковой идентификатор Store
     *
     * Не уникален в рамках приложения
     */
    $id?: string;
    $subscribe?: Function;
}
declare const _default: {
    defineStore: <T extends object>(injectionKey: InjectionKey<UnwrapNestedRefs<T>>, setup: () => T | object, $id?: string, options?: object) => UnwrapNestedRefs<T> & Store;
    useStore: <T>(injectionKey: InjectionKey<T>) => T & Store;
};
export default _default;
