import { Component } from 'vue';
import { Router, NavigationGuard } from 'vue-router';

interface Menu {
    name: string;
    path: string;
    match: string[];
    title: string;
    icon: string;
    children?: Menu[]
}

export interface LayoutBuildConfig {
    layout: {
        title: string;
        footer: string;
        theme: 'dark' | 'light';
        multiTabs: boolean;
        navigation: 'side' | 'top' | 'mixin';
        fixedHeader: boolean;
        fixedSideBar: boolean;
        sideWidth: number;
        menus: Menu[];
    };
}



export interface LayoutRuntimeConfig {
    layout: {
        header: boolean;
        sidebar: boolean;
        logo: boolean;
        customHeader: Component,
        noFoundHandler: (param: { router: Router } & NavigationGuard) => void;
        unAccessHandler: (param: { router: Router } & NavigationGuard) => void;
    };
}