import { Slot } from 'vue';
/**
 * Content layout used when a list is provided together with the main content.
 */
export type AppContentLayout = 'no-split' | 'vertical-split' | 'horizontal-split';
declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
    showDetails?: boolean;
} & {
    /**
     * Allows to disable the control by swipe of the app navigation open state.
     */
    disableSwipe?: boolean;
    /**
     * Allows you to set the default width of the resizable list in % on vertical-split
     * or respectively the default height on horizontal-split.
     *
     * Must be between `listMinWidth` and `listMaxWidth`.
     *
     * @default 20
     */
    listSize?: number;
    /**
     * Allows you to set the minimum width of the list column in % on vertical-split
     * or respectively the minimum height on horizontal-split.
     *
     * @default 15
     */
    listMinWidth?: number;
    /**
     * Allows you to set the maximum width of the list column in % on vertical-split
     * or respectively the maximum height on horizontal-split.
     *
     * @default 40
     */
    listMaxWidth?: number;
    /**
     * Specify the config key for the pane config sizes
     * Default is the global var appName if you use the webpack-vue-config
     */
    paneConfigKey?: string;
    /**
     * Content layout used when there is a list together with content:
     * - `vertical-split` - a 2-column layout with list and default content separated vertically
     * - `no-split` - a single column layout; List is shown when `showDetails` is `false`, otherwise the default slot content is shown with a back button to return to the list.
     * - 'horizontal-split' - a 2-column layout with list and default content separated horizontally
     * On mobile screen `no-split` layout is forced.
     *
     * @default 'vertical-split'
     */
    layout?: AppContentLayout;
    /**
     * Specify the `<h1>` page heading
     */
    pageHeading?: string | null;
    /**
     * Allow setting the page's `<title>`
     *
     * If a page heading is set it defaults to `{pageHeading} - {appName} - {instanceName}` e.g. `Favorites - Files - MyPersonalCloud`.
     * When the page heading and the app name is the same only one is used, e.g. `Files - Files - MyPersonalCloud` is shown as `Files - MyPersonalCloud`.
     * When setting the prop then the following format will be used: `{pageTitle} - {instanceName}`
     */
    pageTitle?: string | null;
}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    "update:showDetails": (...args: unknown[]) => any;
    resizeList: (payload: {
        size: number;
    }) => any;
}, string, import('vue').PublicProps, Readonly<{
    showDetails?: boolean;
} & {
    /**
     * Allows to disable the control by swipe of the app navigation open state.
     */
    disableSwipe?: boolean;
    /**
     * Allows you to set the default width of the resizable list in % on vertical-split
     * or respectively the default height on horizontal-split.
     *
     * Must be between `listMinWidth` and `listMaxWidth`.
     *
     * @default 20
     */
    listSize?: number;
    /**
     * Allows you to set the minimum width of the list column in % on vertical-split
     * or respectively the minimum height on horizontal-split.
     *
     * @default 15
     */
    listMinWidth?: number;
    /**
     * Allows you to set the maximum width of the list column in % on vertical-split
     * or respectively the maximum height on horizontal-split.
     *
     * @default 40
     */
    listMaxWidth?: number;
    /**
     * Specify the config key for the pane config sizes
     * Default is the global var appName if you use the webpack-vue-config
     */
    paneConfigKey?: string;
    /**
     * Content layout used when there is a list together with content:
     * - `vertical-split` - a 2-column layout with list and default content separated vertically
     * - `no-split` - a single column layout; List is shown when `showDetails` is `false`, otherwise the default slot content is shown with a back button to return to the list.
     * - 'horizontal-split' - a 2-column layout with list and default content separated horizontally
     * On mobile screen `no-split` layout is forced.
     *
     * @default 'vertical-split'
     */
    layout?: AppContentLayout;
    /**
     * Specify the `<h1>` page heading
     */
    pageHeading?: string | null;
    /**
     * Allow setting the page's `<title>`
     *
     * If a page heading is set it defaults to `{pageHeading} - {appName} - {instanceName}` e.g. `Favorites - Files - MyPersonalCloud`.
     * When the page heading and the app name is the same only one is used, e.g. `Files - Files - MyPersonalCloud` is shown as `Files - MyPersonalCloud`.
     * When setting the prop then the following format will be used: `{pageTitle} - {instanceName}`
     */
    pageTitle?: string | null;
}> & Readonly<{
    "onUpdate:showDetails"?: ((...args: unknown[]) => any) | undefined;
    onResizeList?: ((payload: {
        size: number;
    }) => any) | undefined;
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>, Readonly<{
    /**
     * Provide the main content to the app content
     */
    default?: Slot;
    /**
     * Provide a list to the app content
     */
    list?: Slot;
}> & {
    /**
     * Provide the main content to the app content
     */
    default?: Slot;
    /**
     * Provide a list to the app content
     */
    list?: Slot;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
