import { Registry } from "miragejs";
import { ModelDefinition } from "miragejs/-types";
import Schema from "miragejs/orm/schema";
import { ViewableDocumentPage } from "../markup-toolbars/src/store/storeTypes";
import { Stamp } from "../markup-toolbars/src/menus/Stamp/stampTypes";
import { MarkupElementFromServer } from "../markup-toolbars/src/store/storeTypes";
import { ViewerDocumentResponse } from "../unified-viewer-flavors/src/shared/apiTypes";
import { DocumentsUploadsResponse } from "../unified-viewer-flavors/src/flavors/documents/utils/apiTypes";
import { SubmittalAPIResponse } from "../unified-viewer-flavors/src/flavors/submittals/apiTypes";
import { Inspection, InspectionItem } from "../unified-viewer-flavors/src/flavors/inspections/types";
export declare enum GeneralModels {
    Company = "company",
    HtmlPageContent = "htmlPageContent",
    MarkupElement = "markupElement"
}
export declare enum InspectionModels {
    Inspection = "inspection",
    InspectionItem = "inpsectionItem"
}
export declare enum SubmittalsModels {
    Document = "submittalsDocument",
    Page = "submittalsPage",
    AdditionalDatum = "submittalsAdditionalDatum",
    Stamp = "submittalsStamp"
}
export declare enum DocumentsModels {
    File = "documentsFile"
}
export declare enum ViewerModels {
    Document = "viewerDocument"
}
interface GeneralForeignKeys {
    companyId: number;
    projectId: number;
}
interface DocumentsUploadDownloadResponse {
    url: string;
}
declare type DocumentsFileModel = GeneralForeignKeys & DocumentsUploadsResponse & DocumentsUploadDownloadResponse;
export declare type AppRegistry = Registry<{
    [GeneralModels.Company]: ModelDefinition<{
        id: number;
    }>;
    [GeneralModels.HtmlPageContent]: ModelDefinition<{
        html: string;
    }>;
    [GeneralModels.MarkupElement]: ModelDefinition<MarkupElementFromServer>;
    [InspectionModels.Inspection]: ModelDefinition<Inspection>;
    [InspectionModels.InspectionItem]: ModelDefinition<InspectionItem>;
    [SubmittalsModels.Document]: ModelDefinition<DocumentsUploadsResponse>;
    [SubmittalsModels.Page]: ModelDefinition<ViewableDocumentPage>;
    [SubmittalsModels.AdditionalDatum]: ModelDefinition<SubmittalAPIResponse>;
    [SubmittalsModels.Stamp]: ModelDefinition<Stamp>;
    [DocumentsModels.File]: ModelDefinition<DocumentsFileModel>;
    [ViewerModels.Document]: ModelDefinition<ViewerDocumentResponse>;
}, {}>;
export declare type AppSchema = Schema<AppRegistry>;
export {};
