export interface ICollision {
    [index: string]: any;
    id: string;
}
export interface ICollisionHistoryMonth {
    month: number;
    year: number;
    collisions: number;
    collisions_by_type: {
        [id: string]: number;
    };
}
export interface ICollisionHistoryYear {
    year: number;
    ytd_date: number;
    collisions: number;
    collisions_by_type: {
        [id: string]: number;
    };
    ytd_collisions: number;
    ytd_collisions_by_type: {
        [id: string]: number;
    };
    month: {
        [id: number]: ICollisionHistoryMonth;
    };
}
export interface ICollisionHistory {
    year: {
        [id: number]: ICollisionHistoryYear;
    };
    addData(collisions: Array<ICollision>): any;
}
export declare abstract class Collision implements ICollision {
    [index: string]: any;
    constructor(collision?: ICollision);
    id: string;
    abstract getCollisionType(): string;
    abstract toString(): string;
    abstract shouldTweet(last_tweeted: number, collision_type: string): boolean;
}
export declare abstract class CollisionHistory implements ICollisionHistory {
    constructor(from_date: number, collisions?: Array<ICollision>);
    from_date: number;
    year: {
        [id: number]: ICollisionHistoryYear;
    };
    abstract addData(collisions: Array<ICollision>): any;
    abstract toString(): string;
}
export declare class CollisionHistoryYear implements ICollisionHistoryYear {
    constructor(year: number, ytd_date: number);
    year: number;
    ytd_date: number;
    collisions: number;
    collisions_by_type: {
        [id: string]: number;
    };
    ytd_collisions: number;
    ytd_collisions_by_type: {
        [id: string]: number;
    };
    month: {
        [id: number]: ICollisionHistoryMonth;
    };
}
export declare class CollisionHistoryMonth implements ICollisionHistoryMonth {
    constructor(year: number, month: number);
    month: number;
    year: number;
    collisions: number;
    collisions_by_type: {
        [id: string]: number;
    };
}
