interface IndexedObject {
    [key: string]: any;
}
export declare class Abonnement<T> {
    protected abonnenter: ((nyVerdi: T, gammelVerdi: T) => void)[];
    private aktuellVerdi;
    private ren;
    constructor(init?: T);
    abonner(abonnent: (nyVerdi: T, gmlVerdi?: T) => void, callOnInit?: boolean): number;
    varsle(nyVerdi: T): T;
    get verdi(): T;
    avslutt(id: number): void;
    get __test(): IndexedObject;
}
export declare class AlleAbonnementer<T> extends Abonnement<T> {
    private list;
    private avsluttListe;
    constructor(list: Abonnement<any>[]);
    avslutt(id: number): void;
}
export declare class JoinedAbonnement<T> extends Abonnement<T> {
    private list;
    private avsluttListe;
    constructor(list: Abonnement<T>[]);
    avslutt(id: number): void;
}
export {};
