/// <reference types="node" />
/**
 * Generated by the protoc-gen-ts.  DO NOT EDIT!
 * compiler version: 3.19.1
 * source: auth.proto
 * git: https://github.com/thesayyn/protoc-gen-ts */
import * as dependency_1 from "./permissionmessages";
import * as pb_1 from "google-protobuf";
import * as grpc_1 from "@grpc/grpc-js";
export declare namespace auth {
    export class _LoginRequest extends pb_1.Message {
        #private;
        constructor(data?: any[] | {});
        static fromObject(data: {}): _LoginRequest;
        toObject(): {};
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _LoginRequest;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _LoginRequest;
    }
    export class _LoginResponse extends pb_1.Message {
        #private;
        constructor(data?: any[] | ({} & (({
            direct_browser?: _LoginResponse.DirectBrowser;
            logged_in?: never;
            message?: never;
            error?: never;
        } | {
            direct_browser?: never;
            logged_in?: _LoginResponse.LoggedIn;
            message?: never;
            error?: never;
        } | {
            direct_browser?: never;
            logged_in?: never;
            message?: _LoginResponse.Message;
            error?: never;
        } | {
            direct_browser?: never;
            logged_in?: never;
            message?: never;
            error?: _LoginResponse.Error;
        }))));
        get direct_browser(): _LoginResponse.DirectBrowser;
        set direct_browser(value: _LoginResponse.DirectBrowser);
        get has_direct_browser(): boolean;
        get logged_in(): _LoginResponse.LoggedIn;
        set logged_in(value: _LoginResponse.LoggedIn);
        get has_logged_in(): boolean;
        get message(): _LoginResponse.Message;
        set message(value: _LoginResponse.Message);
        get has_message(): boolean;
        get error(): _LoginResponse.Error;
        set error(value: _LoginResponse.Error);
        get has_error(): boolean;
        get state(): "none" | "direct_browser" | "logged_in" | "message" | "error";
        static fromObject(data: {
            direct_browser?: ReturnType<typeof _LoginResponse.DirectBrowser.prototype.toObject>;
            logged_in?: ReturnType<typeof _LoginResponse.LoggedIn.prototype.toObject>;
            message?: ReturnType<typeof _LoginResponse.Message.prototype.toObject>;
            error?: ReturnType<typeof _LoginResponse.Error.prototype.toObject>;
        }): _LoginResponse;
        toObject(): {
            direct_browser?: ReturnType<typeof _LoginResponse.DirectBrowser.prototype.toObject>;
            logged_in?: ReturnType<typeof _LoginResponse.LoggedIn.prototype.toObject>;
            message?: ReturnType<typeof _LoginResponse.Message.prototype.toObject>;
            error?: ReturnType<typeof _LoginResponse.Error.prototype.toObject>;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _LoginResponse;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _LoginResponse;
    }
    export namespace _LoginResponse {
        class LoggedIn extends pb_1.Message {
            #private;
            constructor(data?: any[] | {
                session_token?: string;
                valid_for_seconds?: number;
            });
            get session_token(): string;
            set session_token(value: string);
            get valid_for_seconds(): number;
            set valid_for_seconds(value: number);
            static fromObject(data: {
                session_token?: string;
                valid_for_seconds?: number;
            }): LoggedIn;
            toObject(): {
                session_token?: string;
                valid_for_seconds?: number;
            };
            serialize(): Uint8Array;
            serialize(w: pb_1.BinaryWriter): void;
            static deserialize(bytes: Uint8Array | pb_1.BinaryReader): LoggedIn;
            serializeBinary(): Uint8Array;
            static deserializeBinary(bytes: Uint8Array): LoggedIn;
        }
        class Error extends pb_1.Message {
            #private;
            constructor(data?: any[] | {
                description?: string;
            });
            get description(): string;
            set description(value: string);
            static fromObject(data: {
                description?: string;
            }): Error;
            toObject(): {
                description?: string;
            };
            serialize(): Uint8Array;
            serialize(w: pb_1.BinaryWriter): void;
            static deserialize(bytes: Uint8Array | pb_1.BinaryReader): Error;
            serializeBinary(): Uint8Array;
            static deserializeBinary(bytes: Uint8Array): Error;
        }
        class DirectBrowser extends pb_1.Message {
            #private;
            constructor(data?: any[] | {
                url?: string;
            });
            get url(): string;
            set url(value: string);
            static fromObject(data: {
                url?: string;
            }): DirectBrowser;
            toObject(): {
                url?: string;
            };
            serialize(): Uint8Array;
            serialize(w: pb_1.BinaryWriter): void;
            static deserialize(bytes: Uint8Array | pb_1.BinaryReader): DirectBrowser;
            serializeBinary(): Uint8Array;
            static deserializeBinary(bytes: Uint8Array): DirectBrowser;
        }
        class Message extends pb_1.Message {
            #private;
            constructor(data?: any[] | {
                text?: string;
            });
            get text(): string;
            set text(value: string);
            static fromObject(data: {
                text?: string;
            }): Message;
            toObject(): {
                text?: string;
            };
            serialize(): Uint8Array;
            serialize(w: pb_1.BinaryWriter): void;
            static deserialize(bytes: Uint8Array | pb_1.BinaryReader): Message;
            serializeBinary(): Uint8Array;
            static deserializeBinary(bytes: Uint8Array): Message;
        }
    }
    export class _GenerateApiTokenRequest extends pb_1.Message {
        #private;
        constructor(data?: any[] | ({
            auth_token?: string;
            permissions?: dependency_1.permission_messages.Permissions;
            token_id?: string;
            description?: string;
        } & (({
            never?: _GenerateApiTokenRequest.Never;
            expires?: never;
        } | {
            never?: never;
            expires?: _GenerateApiTokenRequest.Expires;
        }))));
        get never(): _GenerateApiTokenRequest.Never;
        set never(value: _GenerateApiTokenRequest.Never);
        get has_never(): boolean;
        get expires(): _GenerateApiTokenRequest.Expires;
        set expires(value: _GenerateApiTokenRequest.Expires);
        get has_expires(): boolean;
        get auth_token(): string;
        set auth_token(value: string);
        get permissions(): dependency_1.permission_messages.Permissions;
        set permissions(value: dependency_1.permission_messages.Permissions);
        get has_permissions(): boolean;
        get token_id(): string;
        set token_id(value: string);
        get description(): string;
        set description(value: string);
        get expiry(): "none" | "never" | "expires";
        static fromObject(data: {
            never?: ReturnType<typeof _GenerateApiTokenRequest.Never.prototype.toObject>;
            expires?: ReturnType<typeof _GenerateApiTokenRequest.Expires.prototype.toObject>;
            auth_token?: string;
            permissions?: ReturnType<typeof dependency_1.permission_messages.Permissions.prototype.toObject>;
            token_id?: string;
            description?: string;
        }): _GenerateApiTokenRequest;
        toObject(): {
            never?: ReturnType<typeof _GenerateApiTokenRequest.Never.prototype.toObject>;
            expires?: ReturnType<typeof _GenerateApiTokenRequest.Expires.prototype.toObject>;
            auth_token?: string;
            permissions?: ReturnType<typeof dependency_1.permission_messages.Permissions.prototype.toObject>;
            token_id?: string;
            description?: string;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _GenerateApiTokenRequest;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _GenerateApiTokenRequest;
    }
    export namespace _GenerateApiTokenRequest {
        class Never extends pb_1.Message {
            #private;
            constructor(data?: any[] | {});
            static fromObject(data: {}): Never;
            toObject(): {};
            serialize(): Uint8Array;
            serialize(w: pb_1.BinaryWriter): void;
            static deserialize(bytes: Uint8Array | pb_1.BinaryReader): Never;
            serializeBinary(): Uint8Array;
            static deserializeBinary(bytes: Uint8Array): Never;
        }
        class Expires extends pb_1.Message {
            #private;
            constructor(data?: any[] | {
                valid_for_seconds?: number;
            });
            get valid_for_seconds(): number;
            set valid_for_seconds(value: number);
            static fromObject(data: {
                valid_for_seconds?: number;
            }): Expires;
            toObject(): {
                valid_for_seconds?: number;
            };
            serialize(): Uint8Array;
            serialize(w: pb_1.BinaryWriter): void;
            static deserialize(bytes: Uint8Array | pb_1.BinaryReader): Expires;
            serializeBinary(): Uint8Array;
            static deserializeBinary(bytes: Uint8Array): Expires;
        }
    }
    export class _GenerateApiTokenResponse extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            api_key?: string;
            refresh_token?: string;
            endpoint?: string;
            valid_until?: number;
        });
        get api_key(): string;
        set api_key(value: string);
        get refresh_token(): string;
        set refresh_token(value: string);
        get endpoint(): string;
        set endpoint(value: string);
        get valid_until(): number;
        set valid_until(value: number);
        static fromObject(data: {
            api_key?: string;
            refresh_token?: string;
            endpoint?: string;
            valid_until?: number;
        }): _GenerateApiTokenResponse;
        toObject(): {
            api_key?: string;
            refresh_token?: string;
            endpoint?: string;
            valid_until?: number;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _GenerateApiTokenResponse;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _GenerateApiTokenResponse;
    }
    export class _RefreshApiTokenRequest extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            api_key?: string;
            refresh_token?: string;
        });
        get api_key(): string;
        set api_key(value: string);
        get refresh_token(): string;
        set refresh_token(value: string);
        static fromObject(data: {
            api_key?: string;
            refresh_token?: string;
        }): _RefreshApiTokenRequest;
        toObject(): {
            api_key?: string;
            refresh_token?: string;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _RefreshApiTokenRequest;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _RefreshApiTokenRequest;
    }
    export class _RefreshApiTokenResponse extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            api_key?: string;
            refresh_token?: string;
            endpoint?: string;
            valid_until?: number;
        });
        get api_key(): string;
        set api_key(value: string);
        get refresh_token(): string;
        set refresh_token(value: string);
        get endpoint(): string;
        set endpoint(value: string);
        get valid_until(): number;
        set valid_until(value: number);
        static fromObject(data: {
            api_key?: string;
            refresh_token?: string;
            endpoint?: string;
            valid_until?: number;
        }): _RefreshApiTokenResponse;
        toObject(): {
            api_key?: string;
            refresh_token?: string;
            endpoint?: string;
            valid_until?: number;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _RefreshApiTokenResponse;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _RefreshApiTokenResponse;
    }
    interface GrpcUnaryServiceInterface<P, R> {
        (message: P, metadata: grpc_1.Metadata, options: grpc_1.CallOptions, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
        (message: P, metadata: grpc_1.Metadata, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
        (message: P, options: grpc_1.CallOptions, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
        (message: P, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
    }
    interface GrpcStreamServiceInterface<P, R> {
        (message: P, metadata: grpc_1.Metadata, options?: grpc_1.CallOptions): grpc_1.ClientReadableStream<R>;
        (message: P, options?: grpc_1.CallOptions): grpc_1.ClientReadableStream<R>;
    }
    export abstract class UnimplementedAuthService {
        static definition: {
            Login: {
                path: string;
                requestStream: boolean;
                responseStream: boolean;
                requestSerialize: (message: _LoginRequest) => Buffer;
                requestDeserialize: (bytes: Buffer) => _LoginRequest;
                responseSerialize: (message: _LoginResponse) => Buffer;
                responseDeserialize: (bytes: Buffer) => _LoginResponse;
            };
            GenerateApiToken: {
                path: string;
                requestStream: boolean;
                responseStream: boolean;
                requestSerialize: (message: _GenerateApiTokenRequest) => Buffer;
                requestDeserialize: (bytes: Buffer) => _GenerateApiTokenRequest;
                responseSerialize: (message: _GenerateApiTokenResponse) => Buffer;
                responseDeserialize: (bytes: Buffer) => _GenerateApiTokenResponse;
            };
            RefreshApiToken: {
                path: string;
                requestStream: boolean;
                responseStream: boolean;
                requestSerialize: (message: _RefreshApiTokenRequest) => Buffer;
                requestDeserialize: (bytes: Buffer) => _RefreshApiTokenRequest;
                responseSerialize: (message: _RefreshApiTokenResponse) => Buffer;
                responseDeserialize: (bytes: Buffer) => _RefreshApiTokenResponse;
            };
        };
        [method: string]: grpc_1.UntypedHandleCall;
        abstract Login(call: grpc_1.ServerWritableStream<_LoginRequest, _LoginResponse>): void;
        abstract GenerateApiToken(call: grpc_1.ServerUnaryCall<_GenerateApiTokenRequest, _GenerateApiTokenResponse>, callback: grpc_1.sendUnaryData<_GenerateApiTokenResponse>): void;
        abstract RefreshApiToken(call: grpc_1.ServerUnaryCall<_RefreshApiTokenRequest, _RefreshApiTokenResponse>, callback: grpc_1.sendUnaryData<_RefreshApiTokenResponse>): void;
    }
    const AuthClient_base: grpc_1.ServiceClientConstructor;
    export class AuthClient extends AuthClient_base {
        constructor(address: string, credentials: grpc_1.ChannelCredentials, options?: Partial<grpc_1.ChannelOptions>);
        Login: GrpcStreamServiceInterface<_LoginRequest, _LoginResponse>;
        GenerateApiToken: GrpcUnaryServiceInterface<_GenerateApiTokenRequest, _GenerateApiTokenResponse>;
        RefreshApiToken: GrpcUnaryServiceInterface<_RefreshApiTokenRequest, _RefreshApiTokenResponse>;
    }
    export {};
}
