import _m0 from 'protobufjs/minimal';
export interface Instance {
    /** The ID of the instance. */
    id: number;
}
export interface DownloadProgress {
    message?: {
        $case: 'start';
        start: DownloadProgressStart;
    } | {
        $case: 'update';
        update: DownloadProgressUpdate;
    } | {
        $case: 'end';
        end: DownloadProgressEnd;
    } | undefined;
}
export interface DownloadProgressStart {
    /** URL of the download. */
    url: string;
    /** The label to display on the progress bar. */
    label: string;
}
export interface DownloadProgressUpdate {
    /** Size of the downloaded portion of the file. */
    downloaded: number;
    /** Total size of the file being downloaded. */
    totalSize: number;
}
export interface DownloadProgressEnd {
    /** True if the download is successful. */
    success: boolean;
    /**
     * Info or error message, depending on the value of 'success'. Some examples:
     * "File xxx already downloaded" or "Connection timeout".
     */
    message: string;
}
export interface TaskProgress {
    /** Description of the task. */
    name: string;
    /** Additional information about the task. */
    message: string;
    /** Whether the task is complete. */
    completed: boolean;
    /** Amount in percent of the task completion (optional). */
    percent: number;
}
export interface Programmer {
    /** Platform name. */
    platform: string;
    /** Programmer ID. */
    id: string;
    /** Programmer name. */
    name: string;
}
/**
 * MissingProgrammerError is a status error detail that is returned when
 * the operation can not be completed due to a missing programmer argument.
 */
export interface MissingProgrammerError {
}
/**
 * Platform is a structure containing all the information about a single
 * platform release.
 */
export interface Platform {
    /** Generic information about a platform. */
    metadata: PlatformMetadata | undefined;
    /** Information about a specific release of a platform. */
    release: PlatformRelease | undefined;
}
/**
 * PlatformSummary is a structure containing all the information about
 * a platform and all its available releases.
 */
export interface PlatformSummary {
    /** Generic information about a platform. */
    metadata: PlatformMetadata | undefined;
    /** Maps version to the corresponding PlatformRelease. */
    releases: {
        [key: string]: PlatformRelease;
    };
    /** The installed version of the platform, or empty string if none installed. */
    installedVersion: string;
    /**
     * The latest available version of the platform that can be installable, or
     * empty if none available.
     */
    latestVersion: string;
}
export interface PlatformSummary_ReleasesEntry {
    key: string;
    value: PlatformRelease | undefined;
}
/**
 * PlatformMetadata contains generic information about a platform (not
 * correlated to a specific release).
 */
export interface PlatformMetadata {
    /** Platform ID (e.g., `arduino:avr`). */
    id: string;
    /** Maintainer of the platform's package. */
    maintainer: string;
    /**
     * A URL provided by the author of the platform's package, intended to point
     * to their website.
     */
    website: string;
    /** Email of the maintainer of the platform's package. */
    email: string;
    /**
     * If true this Platform has been installed manually in the user' sketchbook
     * hardware folder.
     */
    manuallyInstalled: boolean;
    /** True if the latest release of this Platform has been deprecated. */
    deprecated: boolean;
    /** If true the platform is indexed. */
    indexed: boolean;
}
/** PlatformRelease contains information about a specific release of a platform. */
export interface PlatformRelease {
    /** Name used to identify the platform to humans (e.g., "Arduino AVR Boards"). */
    name: string;
    /** Version of the platform release. */
    version: string;
    /** Type of the platform. */
    types: string[];
    /** True if the platform is installed. */
    installed: boolean;
    /**
     * List of boards provided by the platform. If the platform is installed,
     * this is the boards listed in the platform's boards.txt. If the platform is
     * not installed, this is an arbitrary list of board names provided by the
     * platform author for display and may not match boards.txt.
     */
    boards: Board[];
    /**
     * A URL provided by the author of the platform's package, intended to point
     * to their online help service.
     */
    help: HelpResources | undefined;
    /**
     * This field is true if the platform is missing installation metadata (this
     * happens if the platform has been installed with the legacy Arduino IDE
     * <=1.8.x). If the platform miss metadata and it's not indexed through a
     * package index, it may fail to work correctly in some circumstances, and it
     * may need to be reinstalled. This should be evaluated only when the
     * PlatformRelease is `Installed` otherwise is an undefined behaviour.
     */
    missingMetadata: boolean;
    /** True this release is deprecated. */
    deprecated: boolean;
    /**
     * True if the platform dependencies are available for the current OS/ARCH.
     * This also means that the platform is installable.
     */
    compatible: boolean;
}
export interface InstalledPlatformReference {
    /** Platform ID (e.g., `arduino:avr`). */
    id: string;
    /** Version of the platform. */
    version: string;
    /** Installation directory of the platform. */
    installDir: string;
    /** 3rd party platform URL. */
    packageUrl: string;
}
export interface Board {
    /** Name used to identify the board to humans. */
    name: string;
    /**
     * Fully qualified board name used to identify the board to machines. The FQBN
     * is only available for installed boards.
     */
    fqbn: string;
}
export interface HelpResources {
    /**
     * A URL provided by the author of the platform's package, intended to point
     * to their online help service.
     */
    online: string;
}
export interface Sketch {
    /** Absolute path to a main sketch files. */
    mainFile: string;
    /** Absolute path to folder that contains main_file. */
    locationPath: string;
    /** List of absolute paths to other sketch files. */
    otherSketchFiles: string[];
    /** List of absolute paths to additional sketch files. */
    additionalFiles: string[];
    /**
     * List of absolute paths to supported files in the sketch root folder, main
     * file excluded.
     */
    rootFolderFiles: string[];
    /** Default FQBN set in project file (sketch.yaml). */
    defaultFqbn: string;
    /** Default Port set in project file (sketch.yaml). */
    defaultPort: string;
    /** Default Protocol set in project file (sketch.yaml). */
    defaultProtocol: string;
    /** List of profiles present in the project file (sketch.yaml). */
    profiles: SketchProfile[];
    /** Default profile set in the project file (sketch.yaml). */
    defaultProfile: SketchProfile | undefined;
    /** Default Programmer set in project file (sketch.yaml). */
    defaultProgrammer: string;
    /** Default Port configuration set in project file (sketch.yaml). */
    defaultPortConfig: MonitorPortConfiguration | undefined;
}
export interface MonitorPortConfiguration {
    /** The port configuration parameters. */
    settings: MonitorPortSetting[];
}
export interface MonitorPortSetting {
    /** The setting identifier. */
    settingId: string;
    /** The setting value. */
    value: string;
}
export interface SketchProfile {
    /** Name of the profile. */
    name: string;
    /** FQBN used by the profile. */
    fqbn: string;
    /** Programmer used by the profile. */
    programmer: string;
    /** Default Port in this profile. */
    port: string;
    /** Default Port configuration set in project file (sketch.yaml). */
    portConfig: MonitorPortConfiguration | undefined;
    /** Default Protocol in this profile. */
    protocol: string;
}
export declare const Instance: {
    encode(message: Instance, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Instance;
    fromJSON(object: any): Instance;
    toJSON(message: Instance): unknown;
    create(base?: DeepPartial<Instance>): Instance;
    fromPartial(object: DeepPartial<Instance>): Instance;
};
export declare const DownloadProgress: {
    encode(message: DownloadProgress, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DownloadProgress;
    fromJSON(object: any): DownloadProgress;
    toJSON(message: DownloadProgress): unknown;
    create(base?: DeepPartial<DownloadProgress>): DownloadProgress;
    fromPartial(object: DeepPartial<DownloadProgress>): DownloadProgress;
};
export declare const DownloadProgressStart: {
    encode(message: DownloadProgressStart, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DownloadProgressStart;
    fromJSON(object: any): DownloadProgressStart;
    toJSON(message: DownloadProgressStart): unknown;
    create(base?: DeepPartial<DownloadProgressStart>): DownloadProgressStart;
    fromPartial(object: DeepPartial<DownloadProgressStart>): DownloadProgressStart;
};
export declare const DownloadProgressUpdate: {
    encode(message: DownloadProgressUpdate, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DownloadProgressUpdate;
    fromJSON(object: any): DownloadProgressUpdate;
    toJSON(message: DownloadProgressUpdate): unknown;
    create(base?: DeepPartial<DownloadProgressUpdate>): DownloadProgressUpdate;
    fromPartial(object: DeepPartial<DownloadProgressUpdate>): DownloadProgressUpdate;
};
export declare const DownloadProgressEnd: {
    encode(message: DownloadProgressEnd, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DownloadProgressEnd;
    fromJSON(object: any): DownloadProgressEnd;
    toJSON(message: DownloadProgressEnd): unknown;
    create(base?: DeepPartial<DownloadProgressEnd>): DownloadProgressEnd;
    fromPartial(object: DeepPartial<DownloadProgressEnd>): DownloadProgressEnd;
};
export declare const TaskProgress: {
    encode(message: TaskProgress, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): TaskProgress;
    fromJSON(object: any): TaskProgress;
    toJSON(message: TaskProgress): unknown;
    create(base?: DeepPartial<TaskProgress>): TaskProgress;
    fromPartial(object: DeepPartial<TaskProgress>): TaskProgress;
};
export declare const Programmer: {
    encode(message: Programmer, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Programmer;
    fromJSON(object: any): Programmer;
    toJSON(message: Programmer): unknown;
    create(base?: DeepPartial<Programmer>): Programmer;
    fromPartial(object: DeepPartial<Programmer>): Programmer;
};
export declare const MissingProgrammerError: {
    encode(_: MissingProgrammerError, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MissingProgrammerError;
    fromJSON(_: any): MissingProgrammerError;
    toJSON(_: MissingProgrammerError): unknown;
    create(base?: DeepPartial<MissingProgrammerError>): MissingProgrammerError;
    fromPartial(_: DeepPartial<MissingProgrammerError>): MissingProgrammerError;
};
export declare const Platform: {
    encode(message: Platform, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Platform;
    fromJSON(object: any): Platform;
    toJSON(message: Platform): unknown;
    create(base?: DeepPartial<Platform>): Platform;
    fromPartial(object: DeepPartial<Platform>): Platform;
};
export declare const PlatformSummary: {
    encode(message: PlatformSummary, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformSummary;
    fromJSON(object: any): PlatformSummary;
    toJSON(message: PlatformSummary): unknown;
    create(base?: DeepPartial<PlatformSummary>): PlatformSummary;
    fromPartial(object: DeepPartial<PlatformSummary>): PlatformSummary;
};
export declare const PlatformSummary_ReleasesEntry: {
    encode(message: PlatformSummary_ReleasesEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformSummary_ReleasesEntry;
    fromJSON(object: any): PlatformSummary_ReleasesEntry;
    toJSON(message: PlatformSummary_ReleasesEntry): unknown;
    create(base?: DeepPartial<PlatformSummary_ReleasesEntry>): PlatformSummary_ReleasesEntry;
    fromPartial(object: DeepPartial<PlatformSummary_ReleasesEntry>): PlatformSummary_ReleasesEntry;
};
export declare const PlatformMetadata: {
    encode(message: PlatformMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformMetadata;
    fromJSON(object: any): PlatformMetadata;
    toJSON(message: PlatformMetadata): unknown;
    create(base?: DeepPartial<PlatformMetadata>): PlatformMetadata;
    fromPartial(object: DeepPartial<PlatformMetadata>): PlatformMetadata;
};
export declare const PlatformRelease: {
    encode(message: PlatformRelease, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformRelease;
    fromJSON(object: any): PlatformRelease;
    toJSON(message: PlatformRelease): unknown;
    create(base?: DeepPartial<PlatformRelease>): PlatformRelease;
    fromPartial(object: DeepPartial<PlatformRelease>): PlatformRelease;
};
export declare const InstalledPlatformReference: {
    encode(message: InstalledPlatformReference, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): InstalledPlatformReference;
    fromJSON(object: any): InstalledPlatformReference;
    toJSON(message: InstalledPlatformReference): unknown;
    create(base?: DeepPartial<InstalledPlatformReference>): InstalledPlatformReference;
    fromPartial(object: DeepPartial<InstalledPlatformReference>): InstalledPlatformReference;
};
export declare const Board: {
    encode(message: Board, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Board;
    fromJSON(object: any): Board;
    toJSON(message: Board): unknown;
    create(base?: DeepPartial<Board>): Board;
    fromPartial(object: DeepPartial<Board>): Board;
};
export declare const HelpResources: {
    encode(message: HelpResources, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): HelpResources;
    fromJSON(object: any): HelpResources;
    toJSON(message: HelpResources): unknown;
    create(base?: DeepPartial<HelpResources>): HelpResources;
    fromPartial(object: DeepPartial<HelpResources>): HelpResources;
};
export declare const Sketch: {
    encode(message: Sketch, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Sketch;
    fromJSON(object: any): Sketch;
    toJSON(message: Sketch): unknown;
    create(base?: DeepPartial<Sketch>): Sketch;
    fromPartial(object: DeepPartial<Sketch>): Sketch;
};
export declare const MonitorPortConfiguration: {
    encode(message: MonitorPortConfiguration, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MonitorPortConfiguration;
    fromJSON(object: any): MonitorPortConfiguration;
    toJSON(message: MonitorPortConfiguration): unknown;
    create(base?: DeepPartial<MonitorPortConfiguration>): MonitorPortConfiguration;
    fromPartial(object: DeepPartial<MonitorPortConfiguration>): MonitorPortConfiguration;
};
export declare const MonitorPortSetting: {
    encode(message: MonitorPortSetting, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MonitorPortSetting;
    fromJSON(object: any): MonitorPortSetting;
    toJSON(message: MonitorPortSetting): unknown;
    create(base?: DeepPartial<MonitorPortSetting>): MonitorPortSetting;
    fromPartial(object: DeepPartial<MonitorPortSetting>): MonitorPortSetting;
};
export declare const SketchProfile: {
    encode(message: SketchProfile, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SketchProfile;
    fromJSON(object: any): SketchProfile;
    toJSON(message: SketchProfile): unknown;
    create(base?: DeepPartial<SketchProfile>): SketchProfile;
    fromPartial(object: DeepPartial<SketchProfile>): SketchProfile;
};
declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {
    $case: string;
} ? {
    [K in keyof Omit<T, '$case'>]?: DeepPartial<T[K]>;
} & {
    $case: T['$case'];
} : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
export {};
//# sourceMappingURL=common.d.ts.map