import { LitElement, ReactiveElement } from 'lit';

type Constructor<T = Record<string, unknown>> = {
    new (...args: any[]): T;
    prototype: T;
};
export interface SpectrumInterface {
    dir: 'ltr' | 'rtl';
    hasVisibleFocusInTree(): boolean;
    isLTR: boolean;
    shadowRoot: ShadowRoot;
}
export declare function SpectrumMixin<T extends Constructor<ReactiveElement>>(constructor: T): T & Constructor<SpectrumInterface>;
declare const SpectrumElement_base: typeof LitElement & Constructor<SpectrumInterface>;
export declare class SpectrumElement extends SpectrumElement_base {
}
export declare function conditionAttributeWithoutId(el: HTMLElement, attribute: string, ids: string[]): void;
export declare function conditionAttributeWithId(el: HTMLElement, attribute: string, id: string | string[]): () => void;
interface CustomElementConstructor {
    new (...params: unknown[]): HTMLElement;
}
export declare function defineElement(name: string, constructor: CustomElementConstructor): void;
export {};
