import _m0 from 'protobufjs/minimal';
import { DownloadProgress, Instance, Platform, PlatformSummary, TaskProgress } from './common';
export interface PlatformInstallRequest {
    /** Arduino Core Service instance from the `Init` response. */
    instance: Instance | undefined;
    /** Vendor name of the platform (e.g., `arduino`). */
    platformPackage: string;
    /** Architecture name of the platform (e.g., `avr`). */
    architecture: string;
    /** Platform version to install. */
    version: string;
    /**
     * Set to true to not run (eventual) post install scripts for trusted
     * platforms.
     */
    skipPostInstall: boolean;
    /**
     * Set to true to skip installation if a different version of the platform is
     * already installed.
     */
    noOverwrite: boolean;
    /**
     * Set to true to not run (eventual) pre uninstall scripts for trusted
     * platforms when performing platform upgrades.
     */
    skipPreUninstall: boolean;
}
export interface PlatformInstallResponse {
    message?: {
        $case: 'progress';
        progress: DownloadProgress;
    } | {
        $case: 'taskProgress';
        taskProgress: TaskProgress;
    } | {
        $case: 'result';
        result: PlatformInstallResponse_Result;
    } | undefined;
}
/** Empty message, reserved for future expansion. */
export interface PlatformInstallResponse_Result {
}
export interface PlatformLoadingError {
}
export interface PlatformDownloadRequest {
    /** Arduino Core Service instance from the `Init` response. */
    instance: Instance | undefined;
    /** Vendor name of the platform (e.g., `arduino`). */
    platformPackage: string;
    /** Architecture name of the platform (e.g., `avr`). */
    architecture: string;
    /** Platform version to download. */
    version: string;
}
export interface PlatformDownloadResponse {
    message?: {
        $case: 'progress';
        progress: DownloadProgress;
    } | {
        $case: 'result';
        result: PlatformDownloadResponse_Result;
    } | undefined;
}
/** Empty message, reserved for future expansion. */
export interface PlatformDownloadResponse_Result {
}
export interface PlatformUninstallRequest {
    /** Arduino Core Service instance from the `Init` response. */
    instance: Instance | undefined;
    /** Vendor name of the platform (e.g., `arduino`). */
    platformPackage: string;
    /** Architecture name of the platform (e.g., `avr`). */
    architecture: string;
    /**
     * Set to true to not run (eventual) pre uninstall scripts for trusted
     * platforms.
     */
    skipPreUninstall: boolean;
}
export interface PlatformUninstallResponse {
    message?: {
        $case: 'taskProgress';
        taskProgress: TaskProgress;
    } | {
        $case: 'result';
        result: PlatformUninstallResponse_Result;
    } | undefined;
}
/** Empty message, reserved for future expansion. */
export interface PlatformUninstallResponse_Result {
}
/**
 * AlreadyAtLatestVersionError is returned when an upgrade is not possible
 * because already at latest version.
 */
export interface AlreadyAtLatestVersionError {
}
export interface PlatformUpgradeRequest {
    /** Arduino Core Service instance from the `Init` response. */
    instance: Instance | undefined;
    /** Vendor name of the platform (e.g., `arduino`). */
    platformPackage: string;
    /** Architecture name of the platform (e.g., `avr`). */
    architecture: string;
    /**
     * Set to true to not run (eventual) post install scripts for trusted
     * platforms.
     */
    skipPostInstall: boolean;
    /**
     * Set to true to not run (eventual) pre uninstall scripts for trusted
     * platforms when performing platform upgrades.
     */
    skipPreUninstall: boolean;
}
export interface PlatformUpgradeResponse {
    message?: {
        $case: 'progress';
        progress: DownloadProgress;
    } | {
        $case: 'taskProgress';
        taskProgress: TaskProgress;
    } | {
        $case: 'result';
        result: PlatformUpgradeResponse_Result;
    } | undefined;
}
export interface PlatformUpgradeResponse_Result {
    /** The upgraded platform. */
    platform: Platform | undefined;
}
export interface PlatformSearchRequest {
    /** Arduino Core Service instance from the `Init` response. */
    instance: Instance | undefined;
    /** Keywords for the search. */
    searchArgs: string;
    /**
     * Whether to show manually installed platforms. `false` causes to skip
     * manually installed platforms.
     */
    manuallyInstalled: boolean;
}
export interface PlatformSearchResponse {
    /** Results of the search. */
    searchOutput: PlatformSummary[];
}
export declare const PlatformInstallRequest: {
    encode(message: PlatformInstallRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformInstallRequest;
    fromJSON(object: any): PlatformInstallRequest;
    toJSON(message: PlatformInstallRequest): unknown;
    create(base?: DeepPartial<PlatformInstallRequest>): PlatformInstallRequest;
    fromPartial(object: DeepPartial<PlatformInstallRequest>): PlatformInstallRequest;
};
export declare const PlatformInstallResponse: {
    encode(message: PlatformInstallResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformInstallResponse;
    fromJSON(object: any): PlatformInstallResponse;
    toJSON(message: PlatformInstallResponse): unknown;
    create(base?: DeepPartial<PlatformInstallResponse>): PlatformInstallResponse;
    fromPartial(object: DeepPartial<PlatformInstallResponse>): PlatformInstallResponse;
};
export declare const PlatformInstallResponse_Result: {
    encode(_: PlatformInstallResponse_Result, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformInstallResponse_Result;
    fromJSON(_: any): PlatformInstallResponse_Result;
    toJSON(_: PlatformInstallResponse_Result): unknown;
    create(base?: DeepPartial<PlatformInstallResponse_Result>): PlatformInstallResponse_Result;
    fromPartial(_: DeepPartial<PlatformInstallResponse_Result>): PlatformInstallResponse_Result;
};
export declare const PlatformLoadingError: {
    encode(_: PlatformLoadingError, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformLoadingError;
    fromJSON(_: any): PlatformLoadingError;
    toJSON(_: PlatformLoadingError): unknown;
    create(base?: DeepPartial<PlatformLoadingError>): PlatformLoadingError;
    fromPartial(_: DeepPartial<PlatformLoadingError>): PlatformLoadingError;
};
export declare const PlatformDownloadRequest: {
    encode(message: PlatformDownloadRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformDownloadRequest;
    fromJSON(object: any): PlatformDownloadRequest;
    toJSON(message: PlatformDownloadRequest): unknown;
    create(base?: DeepPartial<PlatformDownloadRequest>): PlatformDownloadRequest;
    fromPartial(object: DeepPartial<PlatformDownloadRequest>): PlatformDownloadRequest;
};
export declare const PlatformDownloadResponse: {
    encode(message: PlatformDownloadResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformDownloadResponse;
    fromJSON(object: any): PlatformDownloadResponse;
    toJSON(message: PlatformDownloadResponse): unknown;
    create(base?: DeepPartial<PlatformDownloadResponse>): PlatformDownloadResponse;
    fromPartial(object: DeepPartial<PlatformDownloadResponse>): PlatformDownloadResponse;
};
export declare const PlatformDownloadResponse_Result: {
    encode(_: PlatformDownloadResponse_Result, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformDownloadResponse_Result;
    fromJSON(_: any): PlatformDownloadResponse_Result;
    toJSON(_: PlatformDownloadResponse_Result): unknown;
    create(base?: DeepPartial<PlatformDownloadResponse_Result>): PlatformDownloadResponse_Result;
    fromPartial(_: DeepPartial<PlatformDownloadResponse_Result>): PlatformDownloadResponse_Result;
};
export declare const PlatformUninstallRequest: {
    encode(message: PlatformUninstallRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformUninstallRequest;
    fromJSON(object: any): PlatformUninstallRequest;
    toJSON(message: PlatformUninstallRequest): unknown;
    create(base?: DeepPartial<PlatformUninstallRequest>): PlatformUninstallRequest;
    fromPartial(object: DeepPartial<PlatformUninstallRequest>): PlatformUninstallRequest;
};
export declare const PlatformUninstallResponse: {
    encode(message: PlatformUninstallResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformUninstallResponse;
    fromJSON(object: any): PlatformUninstallResponse;
    toJSON(message: PlatformUninstallResponse): unknown;
    create(base?: DeepPartial<PlatformUninstallResponse>): PlatformUninstallResponse;
    fromPartial(object: DeepPartial<PlatformUninstallResponse>): PlatformUninstallResponse;
};
export declare const PlatformUninstallResponse_Result: {
    encode(_: PlatformUninstallResponse_Result, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformUninstallResponse_Result;
    fromJSON(_: any): PlatformUninstallResponse_Result;
    toJSON(_: PlatformUninstallResponse_Result): unknown;
    create(base?: DeepPartial<PlatformUninstallResponse_Result>): PlatformUninstallResponse_Result;
    fromPartial(_: DeepPartial<PlatformUninstallResponse_Result>): PlatformUninstallResponse_Result;
};
export declare const AlreadyAtLatestVersionError: {
    encode(_: AlreadyAtLatestVersionError, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AlreadyAtLatestVersionError;
    fromJSON(_: any): AlreadyAtLatestVersionError;
    toJSON(_: AlreadyAtLatestVersionError): unknown;
    create(base?: DeepPartial<AlreadyAtLatestVersionError>): AlreadyAtLatestVersionError;
    fromPartial(_: DeepPartial<AlreadyAtLatestVersionError>): AlreadyAtLatestVersionError;
};
export declare const PlatformUpgradeRequest: {
    encode(message: PlatformUpgradeRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformUpgradeRequest;
    fromJSON(object: any): PlatformUpgradeRequest;
    toJSON(message: PlatformUpgradeRequest): unknown;
    create(base?: DeepPartial<PlatformUpgradeRequest>): PlatformUpgradeRequest;
    fromPartial(object: DeepPartial<PlatformUpgradeRequest>): PlatformUpgradeRequest;
};
export declare const PlatformUpgradeResponse: {
    encode(message: PlatformUpgradeResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformUpgradeResponse;
    fromJSON(object: any): PlatformUpgradeResponse;
    toJSON(message: PlatformUpgradeResponse): unknown;
    create(base?: DeepPartial<PlatformUpgradeResponse>): PlatformUpgradeResponse;
    fromPartial(object: DeepPartial<PlatformUpgradeResponse>): PlatformUpgradeResponse;
};
export declare const PlatformUpgradeResponse_Result: {
    encode(message: PlatformUpgradeResponse_Result, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformUpgradeResponse_Result;
    fromJSON(object: any): PlatformUpgradeResponse_Result;
    toJSON(message: PlatformUpgradeResponse_Result): unknown;
    create(base?: DeepPartial<PlatformUpgradeResponse_Result>): PlatformUpgradeResponse_Result;
    fromPartial(object: DeepPartial<PlatformUpgradeResponse_Result>): PlatformUpgradeResponse_Result;
};
export declare const PlatformSearchRequest: {
    encode(message: PlatformSearchRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformSearchRequest;
    fromJSON(object: any): PlatformSearchRequest;
    toJSON(message: PlatformSearchRequest): unknown;
    create(base?: DeepPartial<PlatformSearchRequest>): PlatformSearchRequest;
    fromPartial(object: DeepPartial<PlatformSearchRequest>): PlatformSearchRequest;
};
export declare const PlatformSearchResponse: {
    encode(message: PlatformSearchResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlatformSearchResponse;
    fromJSON(object: any): PlatformSearchResponse;
    toJSON(message: PlatformSearchResponse): unknown;
    create(base?: DeepPartial<PlatformSearchResponse>): PlatformSearchResponse;
    fromPartial(object: DeepPartial<PlatformSearchResponse>): PlatformSearchResponse;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.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=core.d.ts.map