import type { CallContext, CallOptions } from 'nice-grpc-common';
import _m0 from 'protobufjs/minimal';
export interface GetAllResponse {
    /** The settings, in JSON format. */
    jsonData: string;
}
export interface MergeRequest {
    /** The settings, in JSON format. */
    jsonData: string;
}
export interface GetValueResponse {
    /** The key of the setting. */
    key: string;
    /** The setting, in JSON format. */
    jsonData: string;
}
export interface SetValueRequest {
    /** The key of the setting. */
    key: string;
    /** The setting, in JSON format. */
    jsonData: string;
}
export interface GetAllRequest {
}
export interface GetValueRequest {
    /** The key of the setting. */
    key: string;
}
export interface MergeResponse {
}
export interface SetValueResponse {
}
export interface WriteRequest {
    /** Path to settings file (e.g. /path/to/arduino-cli.yaml) */
    filePath: string;
}
export interface WriteResponse {
}
export interface DeleteRequest {
    /** The key of the setting to delete. */
    key: string;
}
export interface DeleteResponse {
}
export declare const GetAllResponse: {
    encode(message: GetAllResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetAllResponse;
    fromJSON(object: any): GetAllResponse;
    toJSON(message: GetAllResponse): unknown;
    create(base?: DeepPartial<GetAllResponse>): GetAllResponse;
    fromPartial(object: DeepPartial<GetAllResponse>): GetAllResponse;
};
export declare const MergeRequest: {
    encode(message: MergeRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MergeRequest;
    fromJSON(object: any): MergeRequest;
    toJSON(message: MergeRequest): unknown;
    create(base?: DeepPartial<MergeRequest>): MergeRequest;
    fromPartial(object: DeepPartial<MergeRequest>): MergeRequest;
};
export declare const GetValueResponse: {
    encode(message: GetValueResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetValueResponse;
    fromJSON(object: any): GetValueResponse;
    toJSON(message: GetValueResponse): unknown;
    create(base?: DeepPartial<GetValueResponse>): GetValueResponse;
    fromPartial(object: DeepPartial<GetValueResponse>): GetValueResponse;
};
export declare const SetValueRequest: {
    encode(message: SetValueRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SetValueRequest;
    fromJSON(object: any): SetValueRequest;
    toJSON(message: SetValueRequest): unknown;
    create(base?: DeepPartial<SetValueRequest>): SetValueRequest;
    fromPartial(object: DeepPartial<SetValueRequest>): SetValueRequest;
};
export declare const GetAllRequest: {
    encode(_: GetAllRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetAllRequest;
    fromJSON(_: any): GetAllRequest;
    toJSON(_: GetAllRequest): unknown;
    create(base?: DeepPartial<GetAllRequest>): GetAllRequest;
    fromPartial(_: DeepPartial<GetAllRequest>): GetAllRequest;
};
export declare const GetValueRequest: {
    encode(message: GetValueRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetValueRequest;
    fromJSON(object: any): GetValueRequest;
    toJSON(message: GetValueRequest): unknown;
    create(base?: DeepPartial<GetValueRequest>): GetValueRequest;
    fromPartial(object: DeepPartial<GetValueRequest>): GetValueRequest;
};
export declare const MergeResponse: {
    encode(_: MergeResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MergeResponse;
    fromJSON(_: any): MergeResponse;
    toJSON(_: MergeResponse): unknown;
    create(base?: DeepPartial<MergeResponse>): MergeResponse;
    fromPartial(_: DeepPartial<MergeResponse>): MergeResponse;
};
export declare const SetValueResponse: {
    encode(_: SetValueResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SetValueResponse;
    fromJSON(_: any): SetValueResponse;
    toJSON(_: SetValueResponse): unknown;
    create(base?: DeepPartial<SetValueResponse>): SetValueResponse;
    fromPartial(_: DeepPartial<SetValueResponse>): SetValueResponse;
};
export declare const WriteRequest: {
    encode(message: WriteRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): WriteRequest;
    fromJSON(object: any): WriteRequest;
    toJSON(message: WriteRequest): unknown;
    create(base?: DeepPartial<WriteRequest>): WriteRequest;
    fromPartial(object: DeepPartial<WriteRequest>): WriteRequest;
};
export declare const WriteResponse: {
    encode(_: WriteResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): WriteResponse;
    fromJSON(_: any): WriteResponse;
    toJSON(_: WriteResponse): unknown;
    create(base?: DeepPartial<WriteResponse>): WriteResponse;
    fromPartial(_: DeepPartial<WriteResponse>): WriteResponse;
};
export declare const DeleteRequest: {
    encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
    fromJSON(object: any): DeleteRequest;
    toJSON(message: DeleteRequest): unknown;
    create(base?: DeepPartial<DeleteRequest>): DeleteRequest;
    fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
};
export declare const DeleteResponse: {
    encode(_: DeleteResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteResponse;
    fromJSON(_: any): DeleteResponse;
    toJSON(_: DeleteResponse): unknown;
    create(base?: DeepPartial<DeleteResponse>): DeleteResponse;
    fromPartial(_: DeepPartial<DeleteResponse>): DeleteResponse;
};
/**
 * The SettingsService provides an interface to Arduino CLI configuration
 * options
 */
export declare type SettingsServiceDefinition = typeof SettingsServiceDefinition;
export declare const SettingsServiceDefinition: {
    readonly name: "SettingsService";
    readonly fullName: "cc.arduino.cli.settings.v1.SettingsService";
    readonly methods: {
        /** List all the settings. */
        readonly getAll: {
            readonly name: "GetAll";
            readonly requestType: {
                encode(_: GetAllRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): GetAllRequest;
                fromJSON(_: any): GetAllRequest;
                toJSON(_: GetAllRequest): unknown;
                create(base?: DeepPartial<GetAllRequest>): GetAllRequest;
                fromPartial(_: DeepPartial<GetAllRequest>): GetAllRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: GetAllResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): GetAllResponse;
                fromJSON(object: any): GetAllResponse;
                toJSON(message: GetAllResponse): unknown;
                create(base?: DeepPartial<GetAllResponse>): GetAllResponse;
                fromPartial(object: DeepPartial<GetAllResponse>): GetAllResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Set multiple settings values at once. */
        readonly merge: {
            readonly name: "Merge";
            readonly requestType: {
                encode(message: MergeRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): MergeRequest;
                fromJSON(object: any): MergeRequest;
                toJSON(message: MergeRequest): unknown;
                create(base?: DeepPartial<MergeRequest>): MergeRequest;
                fromPartial(object: DeepPartial<MergeRequest>): MergeRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(_: MergeResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): MergeResponse;
                fromJSON(_: any): MergeResponse;
                toJSON(_: MergeResponse): unknown;
                create(base?: DeepPartial<MergeResponse>): MergeResponse;
                fromPartial(_: DeepPartial<MergeResponse>): MergeResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Get the value of a specific setting. */
        readonly getValue: {
            readonly name: "GetValue";
            readonly requestType: {
                encode(message: GetValueRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): GetValueRequest;
                fromJSON(object: any): GetValueRequest;
                toJSON(message: GetValueRequest): unknown;
                create(base?: DeepPartial<GetValueRequest>): GetValueRequest;
                fromPartial(object: DeepPartial<GetValueRequest>): GetValueRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: GetValueResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): GetValueResponse;
                fromJSON(object: any): GetValueResponse;
                toJSON(message: GetValueResponse): unknown;
                create(base?: DeepPartial<GetValueResponse>): GetValueResponse;
                fromPartial(object: DeepPartial<GetValueResponse>): GetValueResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Set the value of a specific setting. */
        readonly setValue: {
            readonly name: "SetValue";
            readonly requestType: {
                encode(message: SetValueRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): SetValueRequest;
                fromJSON(object: any): SetValueRequest;
                toJSON(message: SetValueRequest): unknown;
                create(base?: DeepPartial<SetValueRequest>): SetValueRequest;
                fromPartial(object: DeepPartial<SetValueRequest>): SetValueRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(_: SetValueResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): SetValueResponse;
                fromJSON(_: any): SetValueResponse;
                toJSON(_: SetValueResponse): unknown;
                create(base?: DeepPartial<SetValueResponse>): SetValueResponse;
                fromPartial(_: DeepPartial<SetValueResponse>): SetValueResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Writes to file settings currently stored in memory */
        readonly write: {
            readonly name: "Write";
            readonly requestType: {
                encode(message: WriteRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): WriteRequest;
                fromJSON(object: any): WriteRequest;
                toJSON(message: WriteRequest): unknown;
                create(base?: DeepPartial<WriteRequest>): WriteRequest;
                fromPartial(object: DeepPartial<WriteRequest>): WriteRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(_: WriteResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): WriteResponse;
                fromJSON(_: any): WriteResponse;
                toJSON(_: WriteResponse): unknown;
                create(base?: DeepPartial<WriteResponse>): WriteResponse;
                fromPartial(_: DeepPartial<WriteResponse>): WriteResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Deletes an entry and rewrites the file settings */
        readonly delete: {
            readonly name: "Delete";
            readonly requestType: {
                encode(message: DeleteRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): DeleteRequest;
                fromJSON(object: any): DeleteRequest;
                toJSON(message: DeleteRequest): unknown;
                create(base?: DeepPartial<DeleteRequest>): DeleteRequest;
                fromPartial(object: DeepPartial<DeleteRequest>): DeleteRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(_: DeleteResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): DeleteResponse;
                fromJSON(_: any): DeleteResponse;
                toJSON(_: DeleteResponse): unknown;
                create(base?: DeepPartial<DeleteResponse>): DeleteResponse;
                fromPartial(_: DeepPartial<DeleteResponse>): DeleteResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
    };
};
export interface SettingsServiceImplementation<CallContextExt = {}> {
    /** List all the settings. */
    getAll(request: GetAllRequest, context: CallContext & CallContextExt): Promise<DeepPartial<GetAllResponse>>;
    /** Set multiple settings values at once. */
    merge(request: MergeRequest, context: CallContext & CallContextExt): Promise<DeepPartial<MergeResponse>>;
    /** Get the value of a specific setting. */
    getValue(request: GetValueRequest, context: CallContext & CallContextExt): Promise<DeepPartial<GetValueResponse>>;
    /** Set the value of a specific setting. */
    setValue(request: SetValueRequest, context: CallContext & CallContextExt): Promise<DeepPartial<SetValueResponse>>;
    /** Writes to file settings currently stored in memory */
    write(request: WriteRequest, context: CallContext & CallContextExt): Promise<DeepPartial<WriteResponse>>;
    /** Deletes an entry and rewrites the file settings */
    delete(request: DeleteRequest, context: CallContext & CallContextExt): Promise<DeepPartial<DeleteResponse>>;
}
export interface SettingsServiceClient<CallOptionsExt = {}> {
    /** List all the settings. */
    getAll(request: DeepPartial<GetAllRequest>, options?: CallOptions & CallOptionsExt): Promise<GetAllResponse>;
    /** Set multiple settings values at once. */
    merge(request: DeepPartial<MergeRequest>, options?: CallOptions & CallOptionsExt): Promise<MergeResponse>;
    /** Get the value of a specific setting. */
    getValue(request: DeepPartial<GetValueRequest>, options?: CallOptions & CallOptionsExt): Promise<GetValueResponse>;
    /** Set the value of a specific setting. */
    setValue(request: DeepPartial<SetValueRequest>, options?: CallOptions & CallOptionsExt): Promise<SetValueResponse>;
    /** Writes to file settings currently stored in memory */
    write(request: DeepPartial<WriteRequest>, options?: CallOptions & CallOptionsExt): Promise<WriteResponse>;
    /** Deletes an entry and rewrites the file settings */
    delete(request: DeepPartial<DeleteRequest>, options?: CallOptions & CallOptionsExt): Promise<DeleteResponse>;
}
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=settings.d.ts.map