import { type CallOptions, type ChannelCredentials, Client, type ClientOptions, type ClientReadableStream, type ClientUnaryCall, type handleServerStreamingCall, type handleUnaryCall, type Metadata, type ServiceError, type UntypedServiceImplementation } from "@grpc/grpc-js";
import { AboutInformation, ActivateLicenseRequest, AppEventArgs, ExtensionInfo, ExtensionInfos, GetExtensionInfoRequest, GetLicensesResponse, GetLogLevelResponse, InstallExtensionRequest, LicenseInformation, LogMessages, SetLogLevelRequest, UninstallExtensionRequest } from "./app_params";
import { Empty } from "./google/protobuf/empty";
/**
 * The application service. This service is responsible for settings and functions that is global
 * to the complete application.
 */
export type AppServiceService = typeof AppServiceService;
export declare const AppServiceService: {
    /**
     * Starts a subscription for application events.
     * @returns A stream of AppEventArgs messages.
     */
    readonly subscribeForEvents: {
        readonly path: "/appservice.AppService/SubscribeForEvents";
        readonly requestStream: false;
        readonly responseStream: true;
        readonly requestSerialize: (value: Empty) => Buffer;
        readonly requestDeserialize: (value: Buffer) => Empty;
        readonly responseSerialize: (value: AppEventArgs) => Buffer;
        readonly responseDeserialize: (value: Buffer) => AppEventArgs;
    };
    /**
     * Stops the subscription for application events.
     * @returns An empty response message.
     */
    readonly unsubscribeFromEvents: {
        readonly path: "/appservice.AppService/UnsubscribeFromEvents";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: Empty) => Buffer;
        readonly requestDeserialize: (value: Buffer) => Empty;
        readonly responseSerialize: (value: Empty) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Empty;
    };
    /**
     * Starts a subscription for log messages.
     * @returns A stream of log messages.
     */
    readonly subscribeForLogMessages: {
        readonly path: "/appservice.AppService/SubscribeForLogMessages";
        readonly requestStream: false;
        readonly responseStream: true;
        readonly requestSerialize: (value: Empty) => Buffer;
        readonly requestDeserialize: (value: Buffer) => Empty;
        readonly responseSerialize: (value: LogMessages) => Buffer;
        readonly responseDeserialize: (value: Buffer) => LogMessages;
    };
    /**
     * Stops the subscription for log messages.
     * @returns An empty response message.
     */
    readonly unsubscribeFromLogMessages: {
        readonly path: "/appservice.AppService/UnsubscribeFromLogMessages";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: Empty) => Buffer;
        readonly requestDeserialize: (value: Buffer) => Empty;
        readonly responseSerialize: (value: Empty) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Empty;
    };
    /**
     * Gets the current log level.
     * @returns A response message with the current log level.
     */
    readonly getLogLevel: {
        readonly path: "/appservice.AppService/GetLogLevel";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: Empty) => Buffer;
        readonly requestDeserialize: (value: Buffer) => Empty;
        readonly responseSerialize: (value: GetLogLevelResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => GetLogLevelResponse;
    };
    /**
     * Sets a new log level.
     * @param request A request message with the new log level.
     * @returns An empty response message.
     */
    readonly setLogLevel: {
        readonly path: "/appservice.AppService/SetLogLevel";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: SetLogLevelRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => SetLogLevelRequest;
        readonly responseSerialize: (value: Empty) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Empty;
    };
    /**
     * Asks the service to be shutdown.
     * @returns An empty response message.
     */
    readonly shutdown: {
        readonly path: "/appservice.AppService/Shutdown";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: Empty) => Buffer;
        readonly requestDeserialize: (value: Buffer) => Empty;
        readonly responseSerialize: (value: Empty) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Empty;
    };
    /**
     * Asks the service to install a GUI or service extension.
     * @param request A request message with a service extension .wasm-file, or a GUI extension Node.js package file (.tgz file).
     * @returns A response message with the installed extension information.
     */
    readonly installExtension: {
        readonly path: "/appservice.AppService/InstallExtension";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: InstallExtensionRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => InstallExtensionRequest;
        readonly responseSerialize: (value: ExtensionInfo) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ExtensionInfo;
    };
    /**
     * Asks the service to uninstall a GUI or service extension.
     * @param request A request message with a GUI or service extension name.
     * @returns An empty response message.
     */
    readonly uninstallExtension: {
        readonly path: "/appservice.AppService/UninstallExtension";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UninstallExtensionRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UninstallExtensionRequest;
        readonly responseSerialize: (value: Empty) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Empty;
    };
    /**
     * Gets information about all installed extensions.
     * @returns A response message with all installed extensions information.
     */
    readonly getInstalledExtensions: {
        readonly path: "/appservice.AppService/GetInstalledExtensions";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: Empty) => Buffer;
        readonly requestDeserialize: (value: Buffer) => Empty;
        readonly responseSerialize: (value: ExtensionInfos) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ExtensionInfos;
    };
    /**
     * Gets an extension's information.
     * @param request A request message with a service extension .wasm-file, a GUI extension Node.js package file (.tgz file),
     *                or an installed extension's name.
     * @returns A response message with the extension information.
     */
    readonly getExtensionInfo: {
        readonly path: "/appservice.AppService/GetExtensionInfo";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetExtensionInfoRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetExtensionInfoRequest;
        readonly responseSerialize: (value: ExtensionInfo) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ExtensionInfo;
    };
    /**
     * Gets all registered licenses.
     * @returns A response message with all registered licenses.
     */
    readonly getLicenses: {
        readonly path: "/appservice.AppService/GetLicenses";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: Empty) => Buffer;
        readonly requestDeserialize: (value: Buffer) => Empty;
        readonly responseSerialize: (value: GetLicensesResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => GetLicensesResponse;
    };
    /**
     * Asks the service to activate a license.
     * @param request A request message with the license key.
     * @returns A response message with license information.
     */
    readonly activateLicense: {
        readonly path: "/appservice.AppService/ActivateLicense";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ActivateLicenseRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ActivateLicenseRequest;
        readonly responseSerialize: (value: LicenseInformation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => LicenseInformation;
    };
    /**
     * Asks the service to check a license.
     * @param request A request message with the license key.
     * @returns A response message with license information.
     */
    readonly checkLicense: {
        readonly path: "/appservice.AppService/CheckLicense";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ActivateLicenseRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ActivateLicenseRequest;
        readonly responseSerialize: (value: LicenseInformation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => LicenseInformation;
    };
    /**
     * Asks the service for about information.
     * @returns A response with about information.
     */
    readonly getAbout: {
        readonly path: "/appservice.AppService/GetAbout";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: Empty) => Buffer;
        readonly requestDeserialize: (value: Buffer) => Empty;
        readonly responseSerialize: (value: AboutInformation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => AboutInformation;
    };
};
export interface AppServiceServer extends UntypedServiceImplementation {
    /**
     * Starts a subscription for application events.
     * @returns A stream of AppEventArgs messages.
     */
    subscribeForEvents: handleServerStreamingCall<Empty, AppEventArgs>;
    /**
     * Stops the subscription for application events.
     * @returns An empty response message.
     */
    unsubscribeFromEvents: handleUnaryCall<Empty, Empty>;
    /**
     * Starts a subscription for log messages.
     * @returns A stream of log messages.
     */
    subscribeForLogMessages: handleServerStreamingCall<Empty, LogMessages>;
    /**
     * Stops the subscription for log messages.
     * @returns An empty response message.
     */
    unsubscribeFromLogMessages: handleUnaryCall<Empty, Empty>;
    /**
     * Gets the current log level.
     * @returns A response message with the current log level.
     */
    getLogLevel: handleUnaryCall<Empty, GetLogLevelResponse>;
    /**
     * Sets a new log level.
     * @param request A request message with the new log level.
     * @returns An empty response message.
     */
    setLogLevel: handleUnaryCall<SetLogLevelRequest, Empty>;
    /**
     * Asks the service to be shutdown.
     * @returns An empty response message.
     */
    shutdown: handleUnaryCall<Empty, Empty>;
    /**
     * Asks the service to install a GUI or service extension.
     * @param request A request message with a service extension .wasm-file, or a GUI extension Node.js package file (.tgz file).
     * @returns A response message with the installed extension information.
     */
    installExtension: handleUnaryCall<InstallExtensionRequest, ExtensionInfo>;
    /**
     * Asks the service to uninstall a GUI or service extension.
     * @param request A request message with a GUI or service extension name.
     * @returns An empty response message.
     */
    uninstallExtension: handleUnaryCall<UninstallExtensionRequest, Empty>;
    /**
     * Gets information about all installed extensions.
     * @returns A response message with all installed extensions information.
     */
    getInstalledExtensions: handleUnaryCall<Empty, ExtensionInfos>;
    /**
     * Gets an extension's information.
     * @param request A request message with a service extension .wasm-file, a GUI extension Node.js package file (.tgz file),
     *                or an installed extension's name.
     * @returns A response message with the extension information.
     */
    getExtensionInfo: handleUnaryCall<GetExtensionInfoRequest, ExtensionInfo>;
    /**
     * Gets all registered licenses.
     * @returns A response message with all registered licenses.
     */
    getLicenses: handleUnaryCall<Empty, GetLicensesResponse>;
    /**
     * Asks the service to activate a license.
     * @param request A request message with the license key.
     * @returns A response message with license information.
     */
    activateLicense: handleUnaryCall<ActivateLicenseRequest, LicenseInformation>;
    /**
     * Asks the service to check a license.
     * @param request A request message with the license key.
     * @returns A response message with license information.
     */
    checkLicense: handleUnaryCall<ActivateLicenseRequest, LicenseInformation>;
    /**
     * Asks the service for about information.
     * @returns A response with about information.
     */
    getAbout: handleUnaryCall<Empty, AboutInformation>;
}
export interface AppServiceClient extends Client {
    /**
     * Starts a subscription for application events.
     * @returns A stream of AppEventArgs messages.
     */
    subscribeForEvents(request: Empty, options?: Partial<CallOptions>): ClientReadableStream<AppEventArgs>;
    subscribeForEvents(request: Empty, metadata?: Metadata, options?: Partial<CallOptions>): ClientReadableStream<AppEventArgs>;
    /**
     * Stops the subscription for application events.
     * @returns An empty response message.
     */
    unsubscribeFromEvents(request: Empty, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    unsubscribeFromEvents(request: Empty, metadata: Metadata, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    unsubscribeFromEvents(request: Empty, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    /**
     * Starts a subscription for log messages.
     * @returns A stream of log messages.
     */
    subscribeForLogMessages(request: Empty, options?: Partial<CallOptions>): ClientReadableStream<LogMessages>;
    subscribeForLogMessages(request: Empty, metadata?: Metadata, options?: Partial<CallOptions>): ClientReadableStream<LogMessages>;
    /**
     * Stops the subscription for log messages.
     * @returns An empty response message.
     */
    unsubscribeFromLogMessages(request: Empty, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    unsubscribeFromLogMessages(request: Empty, metadata: Metadata, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    unsubscribeFromLogMessages(request: Empty, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    /**
     * Gets the current log level.
     * @returns A response message with the current log level.
     */
    getLogLevel(request: Empty, callback: (error: ServiceError | null, response: GetLogLevelResponse) => void): ClientUnaryCall;
    getLogLevel(request: Empty, metadata: Metadata, callback: (error: ServiceError | null, response: GetLogLevelResponse) => void): ClientUnaryCall;
    getLogLevel(request: Empty, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: GetLogLevelResponse) => void): ClientUnaryCall;
    /**
     * Sets a new log level.
     * @param request A request message with the new log level.
     * @returns An empty response message.
     */
    setLogLevel(request: SetLogLevelRequest, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    setLogLevel(request: SetLogLevelRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    setLogLevel(request: SetLogLevelRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    /**
     * Asks the service to be shutdown.
     * @returns An empty response message.
     */
    shutdown(request: Empty, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    shutdown(request: Empty, metadata: Metadata, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    shutdown(request: Empty, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    /**
     * Asks the service to install a GUI or service extension.
     * @param request A request message with a service extension .wasm-file, or a GUI extension Node.js package file (.tgz file).
     * @returns A response message with the installed extension information.
     */
    installExtension(request: InstallExtensionRequest, callback: (error: ServiceError | null, response: ExtensionInfo) => void): ClientUnaryCall;
    installExtension(request: InstallExtensionRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ExtensionInfo) => void): ClientUnaryCall;
    installExtension(request: InstallExtensionRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ExtensionInfo) => void): ClientUnaryCall;
    /**
     * Asks the service to uninstall a GUI or service extension.
     * @param request A request message with a GUI or service extension name.
     * @returns An empty response message.
     */
    uninstallExtension(request: UninstallExtensionRequest, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    uninstallExtension(request: UninstallExtensionRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    uninstallExtension(request: UninstallExtensionRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    /**
     * Gets information about all installed extensions.
     * @returns A response message with all installed extensions information.
     */
    getInstalledExtensions(request: Empty, callback: (error: ServiceError | null, response: ExtensionInfos) => void): ClientUnaryCall;
    getInstalledExtensions(request: Empty, metadata: Metadata, callback: (error: ServiceError | null, response: ExtensionInfos) => void): ClientUnaryCall;
    getInstalledExtensions(request: Empty, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ExtensionInfos) => void): ClientUnaryCall;
    /**
     * Gets an extension's information.
     * @param request A request message with a service extension .wasm-file, a GUI extension Node.js package file (.tgz file),
     *                or an installed extension's name.
     * @returns A response message with the extension information.
     */
    getExtensionInfo(request: GetExtensionInfoRequest, callback: (error: ServiceError | null, response: ExtensionInfo) => void): ClientUnaryCall;
    getExtensionInfo(request: GetExtensionInfoRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ExtensionInfo) => void): ClientUnaryCall;
    getExtensionInfo(request: GetExtensionInfoRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ExtensionInfo) => void): ClientUnaryCall;
    /**
     * Gets all registered licenses.
     * @returns A response message with all registered licenses.
     */
    getLicenses(request: Empty, callback: (error: ServiceError | null, response: GetLicensesResponse) => void): ClientUnaryCall;
    getLicenses(request: Empty, metadata: Metadata, callback: (error: ServiceError | null, response: GetLicensesResponse) => void): ClientUnaryCall;
    getLicenses(request: Empty, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: GetLicensesResponse) => void): ClientUnaryCall;
    /**
     * Asks the service to activate a license.
     * @param request A request message with the license key.
     * @returns A response message with license information.
     */
    activateLicense(request: ActivateLicenseRequest, callback: (error: ServiceError | null, response: LicenseInformation) => void): ClientUnaryCall;
    activateLicense(request: ActivateLicenseRequest, metadata: Metadata, callback: (error: ServiceError | null, response: LicenseInformation) => void): ClientUnaryCall;
    activateLicense(request: ActivateLicenseRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: LicenseInformation) => void): ClientUnaryCall;
    /**
     * Asks the service to check a license.
     * @param request A request message with the license key.
     * @returns A response message with license information.
     */
    checkLicense(request: ActivateLicenseRequest, callback: (error: ServiceError | null, response: LicenseInformation) => void): ClientUnaryCall;
    checkLicense(request: ActivateLicenseRequest, metadata: Metadata, callback: (error: ServiceError | null, response: LicenseInformation) => void): ClientUnaryCall;
    checkLicense(request: ActivateLicenseRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: LicenseInformation) => void): ClientUnaryCall;
    /**
     * Asks the service for about information.
     * @returns A response with about information.
     */
    getAbout(request: Empty, callback: (error: ServiceError | null, response: AboutInformation) => void): ClientUnaryCall;
    getAbout(request: Empty, metadata: Metadata, callback: (error: ServiceError | null, response: AboutInformation) => void): ClientUnaryCall;
    getAbout(request: Empty, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: AboutInformation) => void): ClientUnaryCall;
}
export declare const AppServiceClient: {
    new (address: string, credentials: ChannelCredentials, options?: Partial<ClientOptions>): AppServiceClient;
    service: typeof AppServiceService;
    serviceName: string;
};
