import { PayloadAction } from "@reduxjs/toolkit";
import { CodeGenCSSType, PageSuggestion, Permission, Project } from "../../data/types";
import { OpsTransaction } from "../../liveblocks/types";
import { ProjectMetadata } from "../../supabase-client/supabase-api";
export interface Permissions {
    [definitionId: string]: Permission;
}
export interface ProjectsState {
    id: string | null;
    project: Project | null;
    nextCommitVersion: number | null;
    subframeImportAlias: string | null;
    opsTransactionId: string | null;
    localOps: OpsTransaction[];
    subframeVersion: string | null;
    companyName: string | null;
    companyContext: string | null;
    pageSuggestions: PageSuggestion[] | null;
    schemaVersion: number | null;
    name: string;
    projectsMetadata: ProjectMetadata[];
    permissions: Permissions;
    teamId: number | null;
}
export declare const projectsSlice: import("@reduxjs/toolkit").Slice<ProjectsState, {
    updateProjectRaw: (state: import("immer/dist/internal").WritableDraft<ProjectsState>, action: PayloadAction<{
        id: string;
        project: Project;
        commitVersion: number;
        subframeImportAlias: string;
        opsTransactionId: string | null;
        schemaVersion: number;
        teamId: number;
    }>) => void;
    updateProjectCompanyName: (state: import("immer/dist/internal").WritableDraft<ProjectsState>, action: PayloadAction<{
        companyName: string | null;
    }>) => void;
    updateProjectCompanyContext: (state: import("immer/dist/internal").WritableDraft<ProjectsState>, action: PayloadAction<{
        companyContext: string | null;
    }>) => void;
    updateProjectPageSuggestions: (state: import("immer/dist/internal").WritableDraft<ProjectsState>, action: PayloadAction<{
        pageSuggestions: PageSuggestion[] | null;
    }>) => void;
    updateSubframeVersion: (state: import("immer/dist/internal").WritableDraft<ProjectsState>, action: PayloadAction<{
        subframeVersion: string;
    }>) => void;
    updateProjectCSSPreference: (state: import("immer/dist/internal").WritableDraft<ProjectsState>, action: PayloadAction<{
        cssType: CodeGenCSSType;
    }>) => void;
    pushOpsTransaction: (state: import("immer/dist/internal").WritableDraft<ProjectsState>, action: PayloadAction<OpsTransaction>) => void;
    updateLocalOps: (state: import("immer/dist/internal").WritableDraft<ProjectsState>, action: PayloadAction<OpsTransaction[]>) => void;
    bumpCommitVersion: (state: import("immer/dist/internal").WritableDraft<ProjectsState>) => void;
    updateProjectName: (state: import("immer/dist/internal").WritableDraft<ProjectsState>, action: PayloadAction<{
        name: string;
    }>) => void;
    updateProjectsMetadata: (state: import("immer/dist/internal").WritableDraft<ProjectsState>, action: PayloadAction<{
        projectsMetadata: ProjectMetadata[];
    }>) => void;
    updatePermissions: (state: import("immer/dist/internal").WritableDraft<ProjectsState>, action: PayloadAction<{
        permissions: Permissions;
    }>) => void;
}, "projects">;
export declare const updateProjectRaw: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    id: string;
    project: Project;
    commitVersion: number;
    subframeImportAlias: string;
    opsTransactionId: string | null;
    schemaVersion: number;
    teamId: number;
}, "projects/updateProjectRaw">, updateProjectCompanyName: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    companyName: string | null;
}, "projects/updateProjectCompanyName">, updateProjectCompanyContext: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    companyContext: string | null;
}, "projects/updateProjectCompanyContext">, updateProjectPageSuggestions: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    pageSuggestions: PageSuggestion[] | null;
}, "projects/updateProjectPageSuggestions">, updateSubframeVersion: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    subframeVersion: string;
}, "projects/updateSubframeVersion">, bumpCommitVersion: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"projects/bumpCommitVersion">, updateProjectCSSPreference: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    cssType: CodeGenCSSType;
}, "projects/updateProjectCSSPreference">, pushOpsTransaction: import("@reduxjs/toolkit").ActionCreatorWithPayload<OpsTransaction, "projects/pushOpsTransaction">, updateLocalOps: import("@reduxjs/toolkit").ActionCreatorWithPayload<OpsTransaction[], "projects/updateLocalOps">, updateProjectName: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    name: string;
}, "projects/updateProjectName">, updateProjectsMetadata: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    projectsMetadata: ProjectMetadata[];
}, "projects/updateProjectsMetadata">, updatePermissions: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    permissions: Permissions;
}, "projects/updatePermissions">;
export declare const projectReducer: import("redux").Reducer<ProjectsState>;
//# sourceMappingURL=projects.d.ts.map