import { OrderSpec } from './order';
export declare const PUBLISHING_PLUGIN_ID: "publishing";
export declare const PUBLISH_STATUS_FIELD_KEY: "_publishStatus";
export declare const PUBLISH_DATE_FIELD_KEY: "_publishDate";
export declare const DRAFT_DATE_FIELD_KEY: "_draftDate";
export declare enum PublishingStatus {
    DRAFT = "DRAFT",
    PUBLISHED = "PUBLISHED"
}
export interface PublishingPlugin {
    defaultStatus: PublishingStatus;
}
export declare const GRID_APPLESS_PLUGIN_ID = "gridAppless";
export interface GridApplessPlugin {
    isMigrated: boolean;
}
export declare const SINGLES_PLUGIN_ID: "singleItem";
export interface SinglesPlugin {
    singleItemId: string;
}
export declare const URLIZED_PLUGIN_ID: "urlized";
export declare enum UrlizedFormat {
    PLAIN = "plain",
    ORIGINAL = "original"
}
export interface UrlizedPlugin {
    format: UrlizedFormat;
}
export declare const MULTILINGUAL_PLUGIN_ID: "multilingual";
export interface MultilingualPlugin {
    translatable: string[];
}
export declare const SHARED_PLUGIN_ID: "shared";
export interface SharedPlugin {
}
export declare const PAGE_LINK_PLUGIN_ID: "persistentPageLink";
export interface PageLinkPlugin {
    isPersisted: boolean;
    isUpdatable: boolean;
}
export declare const CMS_PLUGIN_ID = "cms";
export interface CmsPlugin {
    siteSort?: {
        sort: OrderSpec[];
    };
}
export declare const CATALOG_PLUGIN_ID = "CATALOG";
export interface CatalogOptions {
    name?: string;
    price?: string;
    url?: string | null;
    description?: string | null;
    image?: string | null;
    quantity?: string | null;
}
export interface CatalogPlugin {
    catalogOptions?: CatalogOptions;
}
export declare const CATEGORIES_PLUGIN_ID = "categories";
export interface CategoriesPlugin {
}
export interface KnownSchemaPlugins {
    [PUBLISHING_PLUGIN_ID]?: PublishingPlugin;
    [GRID_APPLESS_PLUGIN_ID]?: GridApplessPlugin;
    [SINGLES_PLUGIN_ID]?: SinglesPlugin;
    [URLIZED_PLUGIN_ID]?: UrlizedPlugin;
    [MULTILINGUAL_PLUGIN_ID]?: MultilingualPlugin;
    [SHARED_PLUGIN_ID]?: SharedPlugin;
    [PAGE_LINK_PLUGIN_ID]?: PageLinkPlugin;
    [CMS_PLUGIN_ID]?: CmsPlugin;
    [CATALOG_PLUGIN_ID]?: CatalogPlugin;
    [CATEGORIES_PLUGIN_ID]?: CategoriesPlugin;
}
export type SchemaPlugins = KnownSchemaPlugins & Record<string, object>;
export type SchemaPluginId = keyof KnownSchemaPlugins;
export type SchemaPlugin = Required<KnownSchemaPlugins>[SchemaPluginId];
