import { ICitation } from './icitation';
import { ICollision, ICollisionHistory } from './icollision';
import { IStateStore } from './istatestore';
export interface IRegion {
    readonly name: string;
    state_store: IStateStore;
    GetCitationsByPlate: (plate: string, state: string) => Promise<Array<ICitation>>;
    ProcessCitationsForRequest: (citations: ICitation[], query_count: number) => Array<string>;
    ProcessCollisions: (collisions: Array<ICollision>) => Promise<Array<string>>;
    GetRecentCollisions: () => Promise<Array<ICollision>>;
    GetCollisionHistory: (start_year: number, end_year: number) => Promise<ICollisionHistory>;
}
export declare abstract class RegionFactory {
    abstract createRegion(state_store: IStateStore): Promise<Region>;
}
export declare abstract class Region implements IRegion {
    constructor(name: string, state_store: IStateStore);
    readonly name: string;
    state_store: IStateStore;
    abstract GetCitationsByPlate(plate: string, state: string): Promise<Array<ICitation>>;
    abstract ProcessCitationsForRequest(citations: ICitation[], query_count: number): Array<string>;
    abstract ProcessCollisions(collisions: Array<ICollision>): Promise<Array<string>>;
    abstract GetRecentCollisions(): Promise<Array<ICollision>>;
    abstract GetCollisionHistory(start_year: number, end_year: number): Promise<ICollisionHistory>;
}
