import { ThunkAction, ThunkMiddleware } from 'redux-thunk';
import { Action } from './types';
import { KnapsackDataStoreSaveBody } from '../../schemas/misc';
declare type AppState = import('./index').AppState;
declare const SAVE_TO_SERVER_REQUEST = "knapsack/meta/SAVE_TO_SERVER_REQUEST";
declare const SAVE_TO_SERVER_SUCCESS = "knapsack/meta/SAVE_TO_SERVER_SUCCESS";
declare const SAVE_TO_SERVER_FAIL = "knapsack/meta/SAVE_TO_SERVER_FAIL";
export interface MetaState {
    meta?: import('../../schemas/misc').KnapsackMeta;
    plugins: {
        id: string;
        /**
         * If `loadContent()` hook was implemented, then an API endpoint is set up and waiting for us
         */
        hasContent: boolean;
        clientPluginPath?: string;
    }[];
}
interface SaveToServerRequestAction extends Action {
    type: typeof SAVE_TO_SERVER_REQUEST;
}
interface SaveToServerSuccessAction extends Action {
    type: typeof SAVE_TO_SERVER_SUCCESS;
}
interface SaveToServerFailAction extends Action {
    type: typeof SAVE_TO_SERVER_FAIL;
}
declare type Actions = SaveToServerRequestAction | SaveToServerSuccessAction | SaveToServerFailAction;
export declare function saveToServer({ storageLocation, title, message, }: Omit<KnapsackDataStoreSaveBody, 'state'>): ThunkAction<void, AppState, {}, Actions>;
export default function reducer(state: MetaState, action: Actions): MetaState;
export declare const autoSaveMiddleware: ThunkMiddleware<AppState, Actions>;
export {};
//# sourceMappingURL=meta.d.ts.map