import type { AnnouncerAttributes } from "../announcer/index.js";
import type { ContextMenuAttributes } from "../contextmenu/index.js";
import type { EditorAttributes } from "../editor/index.js";
import type { FullscreenAttributes } from "../fullscreen/index.js";
import type { IntersectAttributes } from "../intersect/index.js";
import type { PrefetchAttributes } from "../prefetch/index.js";
import type { ShareAttributes } from "../share/index.js";
import type { TableSortAttributes } from "../tablesort/index.js";
import type { TabsAttributes } from "../tabs/index.js";
import type { WakeLockAttributes } from "../wakelock/index.js";
export interface Attributes {
    announcer: AnnouncerAttributes;
    contextmenu: ContextMenuAttributes;
    editor: EditorAttributes;
    fullscreen: FullscreenAttributes;
    intersect: IntersectAttributes;
    prefetch: PrefetchAttributes;
    share: ShareAttributes;
    tablesort: TableSortAttributes;
    tabs: TabsAttributes;
    wakelock: WakeLockAttributes;
}
type Prefixed<Prefix extends string, GlobalAttributes, ElementAttributes extends Record<string, any>> = {
    [K in keyof ElementAttributes as `${Prefix}-${Extract<K, string>}`]: ElementAttributes[K] & GlobalAttributes;
};
export type Elements<GlobalAttributes, Prefix extends string = "drab"> = Prefixed<Prefix, GlobalAttributes, Attributes>;
export {};
//# sourceMappingURL=index.d.ts.map