// package: atc.v1
// file: atc/v1/airplane.proto

/* tslint:disable */
/* eslint-disable */

import * as jspb from "google-protobuf";
import * as atc_v1_map_pb from "../../atc/v1/map_pb";
import * as atc_v1_tag_pb from "../../atc/v1/tag_pb";

export class Airplane extends jspb.Message { 
    getId(): string;
    setId(value: string): Airplane;

    hasPoint(): boolean;
    clearPoint(): void;
    getPoint(): atc_v1_map_pb.Point | undefined;
    setPoint(value?: atc_v1_map_pb.Point): Airplane;
    clearFlightPlanList(): void;
    getFlightPlanList(): Array<atc_v1_map_pb.Node>;
    setFlightPlanList(value: Array<atc_v1_map_pb.Node>): Airplane;
    addFlightPlan(value?: atc_v1_map_pb.Node, index?: number): atc_v1_map_pb.Node;
    getTag(): atc_v1_tag_pb.Tag;
    setTag(value: atc_v1_tag_pb.Tag): Airplane;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): Airplane.AsObject;
    static toObject(includeInstance: boolean, msg: Airplane): Airplane.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: Airplane, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): Airplane;
    static deserializeBinaryFromReader(message: Airplane, reader: jspb.BinaryReader): Airplane;
}

export namespace Airplane {
    export type AsObject = {
        id: string,
        point?: atc_v1_map_pb.Point.AsObject,
        flightPlanList: Array<atc_v1_map_pb.Node.AsObject>,
        tag: atc_v1_tag_pb.Tag,
    }
}

export class GetAirplaneRequest extends jspb.Message { 
    getId(): string;
    setId(value: string): GetAirplaneRequest;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): GetAirplaneRequest.AsObject;
    static toObject(includeInstance: boolean, msg: GetAirplaneRequest): GetAirplaneRequest.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: GetAirplaneRequest, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): GetAirplaneRequest;
    static deserializeBinaryFromReader(message: GetAirplaneRequest, reader: jspb.BinaryReader): GetAirplaneRequest;
}

export namespace GetAirplaneRequest {
    export type AsObject = {
        id: string,
    }
}

export class GetAirplaneResponse extends jspb.Message { 

    hasAirplane(): boolean;
    clearAirplane(): void;
    getAirplane(): Airplane | undefined;
    setAirplane(value?: Airplane): GetAirplaneResponse;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): GetAirplaneResponse.AsObject;
    static toObject(includeInstance: boolean, msg: GetAirplaneResponse): GetAirplaneResponse.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: GetAirplaneResponse, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): GetAirplaneResponse;
    static deserializeBinaryFromReader(message: GetAirplaneResponse, reader: jspb.BinaryReader): GetAirplaneResponse;
}

export namespace GetAirplaneResponse {
    export type AsObject = {
        airplane?: Airplane.AsObject,
    }
}

export class UpdateFlightPlanRequest extends jspb.Message { 
    getId(): string;
    setId(value: string): UpdateFlightPlanRequest;
    clearFlightPlanList(): void;
    getFlightPlanList(): Array<atc_v1_map_pb.Node>;
    setFlightPlanList(value: Array<atc_v1_map_pb.Node>): UpdateFlightPlanRequest;
    addFlightPlan(value?: atc_v1_map_pb.Node, index?: number): atc_v1_map_pb.Node;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): UpdateFlightPlanRequest.AsObject;
    static toObject(includeInstance: boolean, msg: UpdateFlightPlanRequest): UpdateFlightPlanRequest.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: UpdateFlightPlanRequest, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): UpdateFlightPlanRequest;
    static deserializeBinaryFromReader(message: UpdateFlightPlanRequest, reader: jspb.BinaryReader): UpdateFlightPlanRequest;
}

export namespace UpdateFlightPlanRequest {
    export type AsObject = {
        id: string,
        flightPlanList: Array<atc_v1_map_pb.Node.AsObject>,
    }
}

export class UpdateFlightPlanResponse extends jspb.Message { 

    hasSuccess(): boolean;
    clearSuccess(): void;
    getSuccess(): UpdateFlightPlanSuccess | undefined;
    setSuccess(value?: UpdateFlightPlanSuccess): UpdateFlightPlanResponse;

    hasError(): boolean;
    clearError(): void;
    getError(): UpdateFlightPlanError | undefined;
    setError(value?: UpdateFlightPlanError): UpdateFlightPlanResponse;

    getPayloadCase(): UpdateFlightPlanResponse.PayloadCase;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): UpdateFlightPlanResponse.AsObject;
    static toObject(includeInstance: boolean, msg: UpdateFlightPlanResponse): UpdateFlightPlanResponse.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: UpdateFlightPlanResponse, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): UpdateFlightPlanResponse;
    static deserializeBinaryFromReader(message: UpdateFlightPlanResponse, reader: jspb.BinaryReader): UpdateFlightPlanResponse;
}

export namespace UpdateFlightPlanResponse {
    export type AsObject = {
        success?: UpdateFlightPlanSuccess.AsObject,
        error?: UpdateFlightPlanError.AsObject,
    }

    export enum PayloadCase {
        PAYLOAD_NOT_SET = 0,
        SUCCESS = 1,
        ERROR = 2,
    }

}

export class UpdateFlightPlanSuccess extends jspb.Message { 

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): UpdateFlightPlanSuccess.AsObject;
    static toObject(includeInstance: boolean, msg: UpdateFlightPlanSuccess): UpdateFlightPlanSuccess.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: UpdateFlightPlanSuccess, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): UpdateFlightPlanSuccess;
    static deserializeBinaryFromReader(message: UpdateFlightPlanSuccess, reader: jspb.BinaryReader): UpdateFlightPlanSuccess;
}

export namespace UpdateFlightPlanSuccess {
    export type AsObject = {
    }
}

export class UpdateFlightPlanError extends jspb.Message { 
    clearErrorsList(): void;
    getErrorsList(): Array<UpdateFlightPlanError.ValidationError>;
    setErrorsList(value: Array<UpdateFlightPlanError.ValidationError>): UpdateFlightPlanError;
    addErrors(value: UpdateFlightPlanError.ValidationError, index?: number): UpdateFlightPlanError.ValidationError;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): UpdateFlightPlanError.AsObject;
    static toObject(includeInstance: boolean, msg: UpdateFlightPlanError): UpdateFlightPlanError.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: UpdateFlightPlanError, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): UpdateFlightPlanError;
    static deserializeBinaryFromReader(message: UpdateFlightPlanError, reader: jspb.BinaryReader): UpdateFlightPlanError;
}

export namespace UpdateFlightPlanError {
    export type AsObject = {
        errorsList: Array<UpdateFlightPlanError.ValidationError>,
    }

    export enum ValidationError {
    VALIDATION_ERROR_UNSPECIFIED = 0,
    VALIDATION_ERROR_NODE_OUTSIDE_MAP = 1,
    VALIDATION_ERROR_INVALID_STEP = 2,
    VALIDATION_ERROR_SHARP_TURN = 3,
    VALIDATION_ERROR_INVALID_START = 4,
    VALIDATION_ERROR_RESTRICTED_NODE = 5,
    }

}
