import { Marpit } from '@marp-team/marpit';
export declare class Theme {
    readonly filename: string;
    readonly overrideName?: string;
    name?: string;
    private readBuffer?;
    private constructor();
    get buffer(): Buffer<ArrayBufferLike>;
    get css(): string;
    load(): Promise<void>;
    private genUniqName;
    static initialize(filename: string, opts?: Theme.Options): Promise<Theme>;
}
export declare class ThemeSet {
    readonly fn: string[];
    readonly fnForWatch: string[];
    /** The key-value pair from file path to instance */
    readonly themes: Map<string, Theme>;
    onThemeUpdated: (path: string) => void;
    private observedMarkdowns;
    private constructor();
    findPath(): Promise<string[]>;
    load(fn: string): Promise<void>;
    observe(markdownPath: string, theme: string | undefined): void;
    registerTo(engine: Marpit): void;
    unobserve(markdownPath: string): void;
    private add;
    private notify;
    static initialize(baseFn: string[], themes?: Theme[]): Promise<ThemeSet>;
    private static findPath;
}
export declare namespace Theme {
    interface Options {
        overrideName?: true | string;
    }
}
