import { LitElement } from 'lit';
type Constructor<T = object> = new (...args: any[]) => T;
/**
 * Default component states available across all Brightspot UI components.
 * Components can extend this interface to add custom states.
 */
export interface DefaultComponentStates {
    'btu-error': string;
    'btu-loading': string;
    'btu-expanded': string;
}
/**
 * Interface for components using ComponentStatesMixin.
 * Provides access to the Custom State API via ElementInternals.
 */
export declare class ComponentStatesMixinInterface {
    /** @internal */
    internals: ElementInternals;
    /** @internal */
    states: CustomStateSet;
}
/**
 * Mixin that provides access to the Custom State API for managing component states.
 *
 * Uses ElementInternals.states (Custom State API) to manage component-specific states
 * that can be styled with the :state() pseudo-class in CSS.
 *
 * @mixin
 *
 * @example
 * ```typescript
 * // Define a component with custom states
 * class MyComponent extends ComponentStatesMixin(EventEmitterMixin(LitElement)) {
 *   someAction() {
 *     this.states.add('btu-loading')
 *     // ... do work
 *     this.states.delete('btu-loading')
 *   }
 * }
 * ```
 *
 * @example
 * ```css
 * my-component:state(btu-loading) {
 *   opacity: 0.5;
 *   pointer-events: none;
 * }
 * ```
 *
 * @see https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states
 * @see https://developer.mozilla.org/en-US/docs/Web/CSS/:state
 */
export declare const ComponentStatesMixin: <T extends Constructor<LitElement>>(superclass: T) => Constructor<ComponentStatesMixinInterface> & T;
export {};
//# sourceMappingURL=ComponentStatesMixin.d.ts.map