Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
exotic / dist / mobx / typings.d.ts
Size: Mime:
export interface IObservableArray<T = any> extends Array<T> {
    spliceWithArray(index: number, deleteCount?: number, newItems?: T[]): T[];
    observe(listener: (changeData: IArrayChange<T> | IArraySplice<T>) => void, fireImmediately?: boolean): Lambda;
    intercept(handler: IInterceptor<IArrayWillChange<T> | IArrayWillSplice<T>>): Lambda;
    clear(): T[];
    replace(newItems: T[]): T[];
    remove(value: T): boolean;
}
export interface Lambda {
    (): void;
    name?: string;
}
export declare type IInterceptor<T> = (change: T) => T | null;
export interface IInterceptable<T> {
    interceptors: IInterceptor<T>[] | undefined;
    intercept(handler: IInterceptor<T>): Lambda;
}
export declare function hasInterceptors(interceptable: IInterceptable<any>): boolean;
export interface IArrayChange<T = any> {
    type: 'update';
    object: IObservableArray<T>;
    index: number;
    newValue: T;
    oldValue: T;
}
export interface IArraySplice<T = any> {
    type: 'splice';
    object: IObservableArray<T>;
    index: number;
    added: T[];
    addedCount: number;
    removed: T[];
    removedCount: number;
}
export interface IArrayWillChange<T = any> {
    type: 'update';
    object: IObservableArray<T>;
    index: number;
    newValue: T;
}
export interface IArrayWillSplice<T = any> {
    type: 'splice';
    object: IObservableArray<T>;
    index: number;
    added: T[];
    removedCount: number;
}
export interface IObservableObject {
    'observable-object': IObservableObject;
}
export declare type IObjectDidChange = {
    name: string;
    object: any;
    type: 'add';
    newValue: any;
} | {
    name: string;
    object: any;
    type: 'update';
    oldValue: any;
    newValue: any;
} | {
    name: string;
    object: any;
    type: 'remove';
    oldValue: any;
};
export declare type IObjectWillChange = {
    object: any;
    type: 'update' | 'add';
    name: string;
    newValue: any;
} | {
    object: any;
    type: 'remove';
    name: string;
};