import { EventSubscriber } from 'aurelia-binding';
import { IMdcSelectElement } from './mdc-select';
/**
 * @hidden
 * The observer only passes values to the element if options has been set at least once.
 * When the options are set for the first time the observer passes the value to the element.
 * Subsequent options changes pull the value from the element.
 * Subsequent value changes are passed to the element.
 */
export declare class MdcSelectValueObserver {
    private handler;
    constructor(element: Element, handler: EventSubscriber);
    value: unknown;
    oldValue: unknown;
    element: IMdcSelectElement;
    domObserver: MutationObserver | null;
    optionsWereSet: boolean;
    setElementValue(skipNotify?: boolean): void;
    getValue(): unknown;
    setValue(newValue: unknown): void;
    synchronizeValue(): void;
    notify(): void;
    handleEvent(): void;
    subscribe(context: unknown, callable: unknown): void;
    unsubscribe(context: unknown, callable: unknown): void;
    bind(): void;
    unbind(): void;
}
