import { LitElement } from 'lit';
import { Constructor } from 'type-fest';
import { NumberAdapter, AvailableNumberAdapterValueType } from '../number-adapter/index.js';
import { StringAdapter } from '../string-adapter/index.js';
export declare class CounterBaseMixinInterface<V extends AvailableNumberAdapterValueType> {
    static NUMBER_ADAPTER: NumberAdapter;
    static STRING_ADAPTER: StringAdapter;
    get value(): V;
    set value(value: V);
    get oldValue(): V;
    set oldValue(value: V);
    get initialValue(): V;
    set initialValue(value: V);
    direction: 'up' | 'down';
    oldDirection: 'up' | 'down';
    locale: Intl.UnicodeBCP47LocaleIdentifier | [Intl.UnicodeBCP47LocaleIdentifier, Intl.LocaleOptions];
    localeInstance: Intl.Locale;
    numberAdapter: NumberAdapter;
    stringAdapter: StringAdapter;
}
export declare const CounterBaseMixin: <V extends AvailableNumberAdapterValueType, T extends Constructor<LitElement> = Constructor<LitElement>>(superClass: T) => Constructor<CounterBaseMixinInterface<V>> & T;
