import { TileRecord } from '../types/TileRecord';
/**
 * Configuration interface for UCSD application settings.
 *
 * This interface defines the structure and properties required
 * to configure the UCSD application, including layout, themes,
 * headers, and various callback functions.
 *
 * Properties:
 * - `defaultLayout`: Specifies the default layout configuration.
 * - `defaultPageHdr`: Defines the default page header.
 * - `defaultSubHdr`: Defines the default sub-header.
 * - `defaultTheme`: Specifies the default theme of the application.
 * - `initCallback` (optional): A callback function invoked during initialization.
 * - `loginCallback` (optional): A callback function invoked after login with path before login.
 * - `rootMenu`: Defines the main menu structure as a TileRecord.
 * - `menus`: An array of TileRecords representing additional menus.
 */
export interface UcsdConfig {
    defaultLayout: string;
    defaultPageHdr: string;
    defaultSubHdr: string;
    defaultTheme: string;
    clientId?: string;
    clientSecret?: string;
    authUrl?: string;
    ssoUrl?: string;
    accessTokenUrl?: string;
    auditLogUrl?: string;
    errorReportUrl?: string;
    initCallback?: () => void;
    customAuth?: () => Promise<any>;
    loginCallback?: () => Promise<any>;
    logoutCallback?: () => void;
    rootMenu: TileRecord;
    menus: Array<TileRecord>;
}
