import { type CallOptions, ChannelCredentials, Client, type ClientOptions, type ClientReadableStream, type ClientUnaryCall, type handleServerStreamingCall, type handleUnaryCall, Metadata, type ServiceError, type UntypedServiceImplementation } from "@grpc/grpc-js";
import { AboutInformation, ActivateLicenseRequest, AppEventArgs, GetLicensesResponse, GetLogLevelResponse, GetServiceExtensionInfoRequest, GetServiceExtensionInfoResponse, InstallServiceExtensionRequest, LicenseInformation, LogMessages, SetLogLevelRequest, UninstallServiceExtensionRequest } from "./app_params";
import { ApiPreferences } from "./common_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.
     * @param request A request message with API preferences.
     * @returns A stream of AppEventArgs messages.
     */
    readonly subscribeForEvents: {
        readonly path: "/appservice.AppService/SubscribeForEvents";
        readonly requestStream: false;
        readonly responseStream: true;
        readonly requestSerialize: (value: ApiPreferences) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ApiPreferences;
        readonly responseSerialize: (value: AppEventArgs) => Buffer;
        readonly responseDeserialize: (value: Buffer) => AppEventArgs;
    };
    /**
     * Starts a subscription for log messages.
     * @param request A request message with API preferences.
     * @returns A stream of log messages.
     */
    readonly subscribeForLogMessages: {
        readonly path: "/appservice.AppService/SubscribeForLogMessages";
        readonly requestStream: false;
        readonly responseStream: true;
        readonly requestSerialize: (value: ApiPreferences) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ApiPreferences;
        readonly responseSerialize: (value: LogMessages) => Buffer;
        readonly responseDeserialize: (value: Buffer) => LogMessages;
    };
    /**
     * Gets the current log level.
     * @param request A request message with API preferences.
     * @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: ApiPreferences) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ApiPreferences;
        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.
     * @param request A request message with API preferences.
     * @returns An empty response message.
     */
    readonly shutdown: {
        readonly path: "/appservice.AppService/Shutdown";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ApiPreferences) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ApiPreferences;
        readonly responseSerialize: (value: Empty) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Empty;
    };
    /**
     * Asks the service to install a service extension.
     * @param request A request message with a service extension .wasm-file.
     * @returns An empty response message.
     */
    readonly installServiceExtension: {
        readonly path: "/appservice.AppService/InstallServiceExtension";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: InstallServiceExtensionRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => InstallServiceExtensionRequest;
        readonly responseSerialize: (value: Empty) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Empty;
    };
    /**
     * Asks the service to uninstall a service extension.
     * @param request A request message with a service extension name.
     * @returns An empty response message.
     */
    readonly uninstallServiceExtension: {
        readonly path: "/appservice.AppService/UninstallServiceExtension";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UninstallServiceExtensionRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UninstallServiceExtensionRequest;
        readonly responseSerialize: (value: Empty) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Empty;
    };
    /**
     * Gets a service extension's information.
     * @param request A request message with a service extension .wasm-file or an installed extension's name.
     * @returns A response message with the extension information.
     */
    readonly getServiceExtensionInfo: {
        readonly path: "/appservice.AppService/GetServiceExtensionInfo";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetServiceExtensionInfoRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetServiceExtensionInfoRequest;
        readonly responseSerialize: (value: GetServiceExtensionInfoResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => GetServiceExtensionInfoResponse;
    };
    /**
     * Gets all registered licenses.
     * @param request A request message with API preferences.
     * @returns A response message with all registered licenses.
     */
    readonly getLicenses: {
        readonly path: "/appservice.AppService/GetLicenses";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ApiPreferences) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ApiPreferences;
        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.
     * @param request A request message with API preferences.
     * @returns A response with about information.
     */
    readonly getAbout: {
        readonly path: "/appservice.AppService/GetAbout";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ApiPreferences) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ApiPreferences;
        readonly responseSerialize: (value: AboutInformation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => AboutInformation;
    };
};
export interface AppServiceServer extends UntypedServiceImplementation {
    /**
     * Starts a subscription for application events.
     * @param request A request message with API preferences.
     * @returns A stream of AppEventArgs messages.
     */
    subscribeForEvents: handleServerStreamingCall<ApiPreferences, AppEventArgs>;
    /**
     * Starts a subscription for log messages.
     * @param request A request message with API preferences.
     * @returns A stream of log messages.
     */
    subscribeForLogMessages: handleServerStreamingCall<ApiPreferences, LogMessages>;
    /**
     * Gets the current log level.
     * @param request A request message with API preferences.
     * @returns A response message with the current log level.
     */
    getLogLevel: handleUnaryCall<ApiPreferences, 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.
     * @param request A request message with API preferences.
     * @returns An empty response message.
     */
    shutdown: handleUnaryCall<ApiPreferences, Empty>;
    /**
     * Asks the service to install a service extension.
     * @param request A request message with a service extension .wasm-file.
     * @returns An empty response message.
     */
    installServiceExtension: handleUnaryCall<InstallServiceExtensionRequest, Empty>;
    /**
     * Asks the service to uninstall a service extension.
     * @param request A request message with a service extension name.
     * @returns An empty response message.
     */
    uninstallServiceExtension: handleUnaryCall<UninstallServiceExtensionRequest, Empty>;
    /**
     * Gets a service extension's information.
     * @param request A request message with a service extension .wasm-file or an installed extension's name.
     * @returns A response message with the extension information.
     */
    getServiceExtensionInfo: handleUnaryCall<GetServiceExtensionInfoRequest, GetServiceExtensionInfoResponse>;
    /**
     * Gets all registered licenses.
     * @param request A request message with API preferences.
     * @returns A response message with all registered licenses.
     */
    getLicenses: handleUnaryCall<ApiPreferences, 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.
     * @param request A request message with API preferences.
     * @returns A response with about information.
     */
    getAbout: handleUnaryCall<ApiPreferences, AboutInformation>;
}
export interface AppServiceClient extends Client {
    /**
     * Starts a subscription for application events.
     * @param request A request message with API preferences.
     * @returns A stream of AppEventArgs messages.
     */
    subscribeForEvents(request: ApiPreferences, options?: Partial<CallOptions>): ClientReadableStream<AppEventArgs>;
    subscribeForEvents(request: ApiPreferences, metadata?: Metadata, options?: Partial<CallOptions>): ClientReadableStream<AppEventArgs>;
    /**
     * Starts a subscription for log messages.
     * @param request A request message with API preferences.
     * @returns A stream of log messages.
     */
    subscribeForLogMessages(request: ApiPreferences, options?: Partial<CallOptions>): ClientReadableStream<LogMessages>;
    subscribeForLogMessages(request: ApiPreferences, metadata?: Metadata, options?: Partial<CallOptions>): ClientReadableStream<LogMessages>;
    /**
     * Gets the current log level.
     * @param request A request message with API preferences.
     * @returns A response message with the current log level.
     */
    getLogLevel(request: ApiPreferences, callback: (error: ServiceError | null, response: GetLogLevelResponse) => void): ClientUnaryCall;
    getLogLevel(request: ApiPreferences, metadata: Metadata, callback: (error: ServiceError | null, response: GetLogLevelResponse) => void): ClientUnaryCall;
    getLogLevel(request: ApiPreferences, 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.
     * @param request A request message with API preferences.
     * @returns An empty response message.
     */
    shutdown(request: ApiPreferences, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    shutdown(request: ApiPreferences, metadata: Metadata, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    shutdown(request: ApiPreferences, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    /**
     * Asks the service to install a service extension.
     * @param request A request message with a service extension .wasm-file.
     * @returns An empty response message.
     */
    installServiceExtension(request: InstallServiceExtensionRequest, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    installServiceExtension(request: InstallServiceExtensionRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    installServiceExtension(request: InstallServiceExtensionRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    /**
     * Asks the service to uninstall a service extension.
     * @param request A request message with a service extension name.
     * @returns An empty response message.
     */
    uninstallServiceExtension(request: UninstallServiceExtensionRequest, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    uninstallServiceExtension(request: UninstallServiceExtensionRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    uninstallServiceExtension(request: UninstallServiceExtensionRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Empty) => void): ClientUnaryCall;
    /**
     * Gets a service extension's information.
     * @param request A request message with a service extension .wasm-file or an installed extension's name.
     * @returns A response message with the extension information.
     */
    getServiceExtensionInfo(request: GetServiceExtensionInfoRequest, callback: (error: ServiceError | null, response: GetServiceExtensionInfoResponse) => void): ClientUnaryCall;
    getServiceExtensionInfo(request: GetServiceExtensionInfoRequest, metadata: Metadata, callback: (error: ServiceError | null, response: GetServiceExtensionInfoResponse) => void): ClientUnaryCall;
    getServiceExtensionInfo(request: GetServiceExtensionInfoRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: GetServiceExtensionInfoResponse) => void): ClientUnaryCall;
    /**
     * Gets all registered licenses.
     * @param request A request message with API preferences.
     * @returns A response message with all registered licenses.
     */
    getLicenses(request: ApiPreferences, callback: (error: ServiceError | null, response: GetLicensesResponse) => void): ClientUnaryCall;
    getLicenses(request: ApiPreferences, metadata: Metadata, callback: (error: ServiceError | null, response: GetLicensesResponse) => void): ClientUnaryCall;
    getLicenses(request: ApiPreferences, 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.
     * @param request A request message with API preferences.
     * @returns A response with about information.
     */
    getAbout(request: ApiPreferences, callback: (error: ServiceError | null, response: AboutInformation) => void): ClientUnaryCall;
    getAbout(request: ApiPreferences, metadata: Metadata, callback: (error: ServiceError | null, response: AboutInformation) => void): ClientUnaryCall;
    getAbout(request: ApiPreferences, 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;
};
