/**
 * AIS记录
 */
export interface AISRecord {
    mmsi?: number;
    name?: string;
    imo?: number;
    callSign?: string;
    lat?: number;
    lng?: number;
    length?: number;
    width?: number;
    draught?: number;
    sog?: number;
    cog?: number;
    hdg?: number;
    rot?: number;
    eta?: string;
    destination?: string;
    positionTime?: number;
    status?: number;
    labelCn?: string;
    labelEn?: string;
    method?: string;
    vendor?: string;
    deleted?: boolean;
    utc?: string;
    vesselType?: string;
    flag?: string;
    clasz?: string;
    build?: string;
    dwt?: number;
    grt?: number;
    net?: number;
    meteo?: string;
    type?: string;
}
export interface VesselRecord {
    mmsi?: number;
    name?: string;
    imo?: number;
    callSign?: string;
    length?: number;
    breadth?: number;
    draught?: number;
    deadweight?: number;
    vendor?: string;
    score?: number;
    type?: string;
}
export interface AuthToken {
    accessToken: string;
    tokenType?: string;
    expiresIn?: number;
    scope?: string;
    jti?: string;
    issuedAt?: string;
}
export declare class AISImpl {
    /**
     * 解析AIS状态码
     * @param status
     */
    parseStatus(status: number): {
        labelCn: string;
        labelEn: string;
    };
}
export declare class MyVesselImpl extends AISImpl {
    private readonly clientId;
    private readonly clientSecret;
    private token;
    constructor(clientId: string, clientSecret: string);
    authToken(options?: {
        requestId?: string;
    }): Promise<void>;
    realTimePosition(mmsi: number, options?: {
        requestId?: string;
    }): Promise<AISRecord>;
    trajectory(mmsi: number, startTime: string, endTime: string, offset: number, scale?: boolean, options?: {
        requestId?: string;
    }): Promise<AISRecord[]>;
    private trajectoryIn30Day;
}
export declare class HifleetImpl extends AISImpl {
    private readonly token;
    constructor(token: string);
    realTimePosition(mmsi: number, options?: {
        requestId?: string;
    }): Promise<AISRecord>;
    search(kw: string, options?: {
        requestId?: string;
    }): Promise<VesselRecord>;
    suggest(kw: string, options?: {
        requestId?: string;
    }): Promise<VesselRecord>;
    trajectory(mmsi: number, startTime: string, endTime: string, offset: number, scale?: boolean, options?: {
        requestId?: string;
    }): Promise<AISRecord[]>;
}
export declare class ShipxyImpl extends AISImpl {
    private readonly token;
    constructor(token: string);
    realTimePosition(mmsi: number, options?: {
        requestId?: string;
    }): Promise<AISRecord>;
    trajectory(mmsi: number, startTime: string, endTime: string, offset: number, scale?: boolean, options?: {
        requestId?: string;
    }): Promise<AISRecord[]>;
}
export declare class MyShipImpl extends AISImpl {
    private readonly token;
    constructor(token: string);
    getShipId(mmsi: any, options?: {
        requestId?: string;
    }): Promise<string>;
    getShipInfo(shipId: string, options?: {
        requestId?: string;
    }): Promise<AISRecord>;
    realTimePosition(mmsi: number, options?: {
        requestId?: string;
    }): Promise<AISRecord>;
    trajectory(mmsi: number, startTime: string, endTime: string, offset: number, scale?: boolean, options?: {
        requestId?: string;
    }): Promise<AISRecord[]>;
    private trajectoryIn30Day;
}
