import { TypedUseSelectorHook } from 'react-redux';
export * from './settings';
export * from './ui';
export { saveToServer } from './meta';
export * from './custom-pages';
export * from './patterns';
export * from './navs';
export * from './user';
export { useDispatch, shallowEqual } from 'react-redux';
declare const rootReducer: import("redux").Reducer<{
    patternsState: {
        isFetching?: boolean;
        didInvalidate?: boolean;
        patterns: {
            [id: string]: import("../../types").KnapsackPattern;
        };
        renderers: {
            [id: string]: {
                meta: import("../../types").TemplateRendererMeta;
            };
        };
    } & import("../../types").KnapsackPatternsConfig;
    settingsState: import("./settings").SettingsState;
    userState: import("./user").UserState;
    metaState: import("./meta").MetaState;
    customPagesState: import("../../types").KnapsackCustomPagesData;
    assetSetsState: import("../../types").KnapsackAssetSetsData;
    navsState: import("../../types").KnapsackNavsConfig;
    ui: import("./ui").UiState;
}, import("redux").AnyAction>;
export declare type AppState = ReturnType<typeof rootReducer>;
/**
 * Custom Redux `useSelector` hook
 * Benefits: has appropriate types, and
 * a better default `equalityFn` - the default use `===`, we are using a shallowEqual (which is what `connect()` uses)
 * this is important b/c `{a: 1} !== {a: 1}` so many unnecessary re-renders occur
 * Original implementation was `export const useSelector: TypedUseSelectorHook<AppState> = useReduxSelector;`
 */
export declare const useSelector: TypedUseSelectorHook<AppState>;
export declare function createStore(initialState: AppState): import("redux").Store<{
    patternsState: {
        isFetching?: boolean;
        didInvalidate?: boolean;
        patterns: {
            [id: string]: import("../../types").KnapsackPattern;
        };
        renderers: {
            [id: string]: {
                meta: import("../../types").TemplateRendererMeta;
            };
        };
    } & import("../../types").KnapsackPatternsConfig;
    settingsState: import("./settings").SettingsState;
    userState: import("./user").UserState;
    metaState: import("./meta").MetaState;
    customPagesState: import("../../types").KnapsackCustomPagesData;
    assetSetsState: import("../../types").KnapsackAssetSetsData;
    navsState: import("../../types").KnapsackNavsConfig;
    ui: import("./ui").UiState;
}, import("redux").AnyAction>;
export declare type StoreType = ReturnType<typeof createStore>;
//# sourceMappingURL=index.d.ts.map