import { InjectionKey } from 'vue';
import { CardElement } from '../definitions/elements';
import { DisplayCard } from '../definitions/cards';
import { CreateConfig, DeleteConfig, UpdateConfig } from '../definitions/shared/crud';
/**
 * Inject key used by elements / cards rendered under a ShowPage or
 * IndexPage to read the page-level eventHandlers map.
 */
export declare const PAGE_EVENT_HANDLERS_KEY: InjectionKey<Record<string, (...args: unknown[]) => void>>;
export interface BreadCrumb {
    title: string;
}
export interface TabConfig {
    title: string;
    tabId: string;
    cards: DisplayCard[];
    nextTab?: {
        id: string;
        text: string;
    };
}
export interface ShowPageConfig {
    title: string;
    breadCrumbs?: BreadCrumb[];
    section?: string;
    tabsList?: TabConfig[];
    cards?: Record<string, DisplayCard>;
    elements?: Record<string, CardElement>;
    updateConfig?: UpdateConfig;
    createConfig?: CreateConfig;
    deleteConfig?: DeleteConfig;
    eventHandlers?: Record<string, (...args: unknown[]) => void>;
}
export interface ShowPageProps {
    config: ShowPageConfig;
    /**
     * The data model rendered by the page. Each card / element receives
     * this as `item`.
     */
    item?: Record<string, unknown>;
    /**
     * Override the form-data store ID. Defaults to `show-page-default`.
     */
    formId?: string;
}
declare const _default: import('vue').DefineComponent<ShowPageProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
    delete: () => any;
    save: () => any;
    "tab-change": (tabId: string) => any;
}, string, import('vue').PublicProps, Readonly<ShowPageProps> & Readonly<{
    onDelete?: (() => any) | undefined;
    onSave?: (() => any) | undefined;
    "onTab-change"?: ((tabId: string) => any) | undefined;
}>, {
    item: Record<string, unknown>;
    formId: string;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
export default _default;
//# sourceMappingURL=ShowPage.vue.d.ts.map