import type { ThemeOptions } from '@mui/material/styles';
import type { PaletteColor } from '@mui/material/styles/createPalette';
type MaybePaletteColor = PaletteColor | undefined;
type Frames = [
    null,
    MaybePaletteColor,
    MaybePaletteColor,
    MaybePaletteColor,
    MaybePaletteColor,
    MaybePaletteColor,
    MaybePaletteColor
];
declare module '@mui/material/styles/createPalette' {
    interface Palette {
        tertiary: PaletteColor;
        quaternary: PaletteColor;
        highlight: PaletteColor;
        stopCodon: string;
        startCodon: string;
        insertion: string;
        softclip: string;
        skip: string;
        hardclip: string;
        deletion: string;
        bases: {
            A: PaletteColor;
            C: PaletteColor;
            G: PaletteColor;
            T: PaletteColor;
        };
        frames: Frames;
        framesCDS: Frames;
    }
    interface PaletteOptions {
        tertiary?: PaletteColorOptions;
        quaternary?: PaletteColorOptions;
        highlight?: PaletteColorOptions;
        stopCodon?: string;
        startCodon?: string;
        hardclip?: string;
        softclip?: string;
        insertion?: string;
        skip?: string;
        deletion?: string;
        bases?: {
            A?: PaletteColorOptions;
            C?: PaletteColorOptions;
            G?: PaletteColorOptions;
            T?: PaletteColorOptions;
        };
        framesCDS?: Frames;
        frames?: Frames;
    }
}
export declare const defaultThemes: ThemeMap;
export declare function createJBrowseBaseTheme(theme?: ThemeOptions): ThemeOptions;
type ThemeMap = Record<string, ThemeOptions>;
export declare function createJBrowseTheme(configTheme?: ThemeOptions, themes?: ThemeMap, themeName?: string): import("@mui/material/styles").Theme;
export {};
