/**
 * Generated by the protoc-gen-ts.  DO NOT EDIT!
 * compiler version: 3.19.1
 * source: permissionmessages.proto
 * git: https://github.com/thesayyn/protoc-gen-ts */
import * as pb_1 from "google-protobuf";
export declare namespace permission_messages {
    enum CacheRole {
        CachePermitNone = 0,
        CacheReadWrite = 1,
        CacheReadOnly = 2,
        CacheWriteOnly = 3
    }
    enum TopicRole {
        TopicPermitNone = 0,
        TopicReadWrite = 1,
        TopicReadOnly = 2,
        TopicWriteOnly = 3
    }
    enum FunctionRole {
        FunctionPermitNone = 0,
        FunctionInvoke = 1
    }
    enum SuperUserPermissions {
        SuperUser = 0
    }
    class Permissions extends pb_1.Message {
        #private;
        constructor(data?: any[] | ({} & (({
            super_user?: SuperUserPermissions;
            explicit?: never;
        } | {
            super_user?: never;
            explicit?: ExplicitPermissions;
        }))));
        get super_user(): SuperUserPermissions;
        set super_user(value: SuperUserPermissions);
        get has_super_user(): boolean;
        get explicit(): ExplicitPermissions;
        set explicit(value: ExplicitPermissions);
        get has_explicit(): boolean;
        get kind(): "super_user" | "explicit" | "none";
        static fromObject(data: {
            super_user?: SuperUserPermissions;
            explicit?: ReturnType<typeof ExplicitPermissions.prototype.toObject>;
        }): Permissions;
        toObject(): {
            super_user?: SuperUserPermissions;
            explicit?: ReturnType<typeof ExplicitPermissions.prototype.toObject>;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): Permissions;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): Permissions;
    }
    class ExplicitPermissions extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            permissions?: PermissionsType[];
        });
        get permissions(): PermissionsType[];
        set permissions(value: PermissionsType[]);
        static fromObject(data: {
            permissions?: ReturnType<typeof PermissionsType.prototype.toObject>[];
        }): ExplicitPermissions;
        toObject(): {
            permissions?: ReturnType<typeof PermissionsType.prototype.toObject>[];
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): ExplicitPermissions;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): ExplicitPermissions;
    }
    class PermissionsType extends pb_1.Message {
        #private;
        constructor(data?: any[] | ({} & (({
            cache_permissions?: PermissionsType.CachePermissions;
            topic_permissions?: never;
            function_permissions?: never;
        } | {
            cache_permissions?: never;
            topic_permissions?: PermissionsType.TopicPermissions;
            function_permissions?: never;
        } | {
            cache_permissions?: never;
            topic_permissions?: never;
            function_permissions?: PermissionsType.FunctionPermissions;
        }))));
        get cache_permissions(): PermissionsType.CachePermissions;
        set cache_permissions(value: PermissionsType.CachePermissions);
        get has_cache_permissions(): boolean;
        get topic_permissions(): PermissionsType.TopicPermissions;
        set topic_permissions(value: PermissionsType.TopicPermissions);
        get has_topic_permissions(): boolean;
        get function_permissions(): PermissionsType.FunctionPermissions;
        set function_permissions(value: PermissionsType.FunctionPermissions);
        get has_function_permissions(): boolean;
        get kind(): "none" | "cache_permissions" | "topic_permissions" | "function_permissions";
        static fromObject(data: {
            cache_permissions?: ReturnType<typeof PermissionsType.CachePermissions.prototype.toObject>;
            topic_permissions?: ReturnType<typeof PermissionsType.TopicPermissions.prototype.toObject>;
            function_permissions?: ReturnType<typeof PermissionsType.FunctionPermissions.prototype.toObject>;
        }): PermissionsType;
        toObject(): {
            cache_permissions?: ReturnType<typeof PermissionsType.CachePermissions.prototype.toObject>;
            topic_permissions?: ReturnType<typeof PermissionsType.TopicPermissions.prototype.toObject>;
            function_permissions?: ReturnType<typeof PermissionsType.FunctionPermissions.prototype.toObject>;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): PermissionsType;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): PermissionsType;
    }
    namespace PermissionsType {
        class All extends pb_1.Message {
            #private;
            constructor(data?: any[] | {});
            static fromObject(data: {}): All;
            toObject(): {};
            serialize(): Uint8Array;
            serialize(w: pb_1.BinaryWriter): void;
            static deserialize(bytes: Uint8Array | pb_1.BinaryReader): All;
            serializeBinary(): Uint8Array;
            static deserializeBinary(bytes: Uint8Array): All;
        }
        class CacheSelector extends pb_1.Message {
            #private;
            constructor(data?: any[] | ({} & (({
                cache_name?: string;
            }))));
            get cache_name(): string;
            set cache_name(value: string);
            get has_cache_name(): boolean;
            get kind(): "none" | "cache_name";
            static fromObject(data: {
                cache_name?: string;
            }): CacheSelector;
            toObject(): {
                cache_name?: string;
            };
            serialize(): Uint8Array;
            serialize(w: pb_1.BinaryWriter): void;
            static deserialize(bytes: Uint8Array | pb_1.BinaryReader): CacheSelector;
            serializeBinary(): Uint8Array;
            static deserializeBinary(bytes: Uint8Array): CacheSelector;
        }
        class CacheItemSelector extends pb_1.Message {
            #private;
            constructor(data?: any[] | ({} & (({
                key?: Uint8Array;
                key_prefix?: never;
            } | {
                key?: never;
                key_prefix?: Uint8Array;
            }))));
            get key(): Uint8Array;
            set key(value: Uint8Array);
            get has_key(): boolean;
            get key_prefix(): Uint8Array;
            set key_prefix(value: Uint8Array);
            get has_key_prefix(): boolean;
            get kind(): "none" | "key" | "key_prefix";
            static fromObject(data: {
                key?: Uint8Array;
                key_prefix?: Uint8Array;
            }): CacheItemSelector;
            toObject(): {
                key?: Uint8Array;
                key_prefix?: Uint8Array;
            };
            serialize(): Uint8Array;
            serialize(w: pb_1.BinaryWriter): void;
            static deserialize(bytes: Uint8Array | pb_1.BinaryReader): CacheItemSelector;
            serializeBinary(): Uint8Array;
            static deserializeBinary(bytes: Uint8Array): CacheItemSelector;
        }
        class CachePermissions extends pb_1.Message {
            #private;
            constructor(data?: any[] | ({
                role?: CacheRole;
            } & (({
                all_caches?: PermissionsType.All;
                cache_selector?: never;
            } | {
                all_caches?: never;
                cache_selector?: PermissionsType.CacheSelector;
            }) | ({
                all_items?: PermissionsType.All;
                item_selector?: never;
            } | {
                all_items?: never;
                item_selector?: PermissionsType.CacheItemSelector;
            }))));
            get role(): CacheRole;
            set role(value: CacheRole);
            get all_caches(): PermissionsType.All;
            set all_caches(value: PermissionsType.All);
            get has_all_caches(): boolean;
            get cache_selector(): PermissionsType.CacheSelector;
            set cache_selector(value: PermissionsType.CacheSelector);
            get has_cache_selector(): boolean;
            get all_items(): PermissionsType.All;
            set all_items(value: PermissionsType.All);
            get has_all_items(): boolean;
            get item_selector(): PermissionsType.CacheItemSelector;
            set item_selector(value: PermissionsType.CacheItemSelector);
            get has_item_selector(): boolean;
            get cache(): "none" | "all_caches" | "cache_selector";
            get cache_item(): "none" | "all_items" | "item_selector";
            static fromObject(data: {
                role?: CacheRole;
                all_caches?: ReturnType<typeof PermissionsType.All.prototype.toObject>;
                cache_selector?: ReturnType<typeof PermissionsType.CacheSelector.prototype.toObject>;
                all_items?: ReturnType<typeof PermissionsType.All.prototype.toObject>;
                item_selector?: ReturnType<typeof PermissionsType.CacheItemSelector.prototype.toObject>;
            }): CachePermissions;
            toObject(): {
                role?: CacheRole;
                all_caches?: ReturnType<typeof PermissionsType.All.prototype.toObject>;
                cache_selector?: ReturnType<typeof PermissionsType.CacheSelector.prototype.toObject>;
                all_items?: ReturnType<typeof PermissionsType.All.prototype.toObject>;
                item_selector?: ReturnType<typeof PermissionsType.CacheItemSelector.prototype.toObject>;
            };
            serialize(): Uint8Array;
            serialize(w: pb_1.BinaryWriter): void;
            static deserialize(bytes: Uint8Array | pb_1.BinaryReader): CachePermissions;
            serializeBinary(): Uint8Array;
            static deserializeBinary(bytes: Uint8Array): CachePermissions;
        }
        class TopicSelector extends pb_1.Message {
            #private;
            constructor(data?: any[] | ({} & (({
                topic_name?: string;
                topic_name_prefix?: never;
            } | {
                topic_name?: never;
                topic_name_prefix?: string;
            }))));
            get topic_name(): string;
            set topic_name(value: string);
            get has_topic_name(): boolean;
            get topic_name_prefix(): string;
            set topic_name_prefix(value: string);
            get has_topic_name_prefix(): boolean;
            get kind(): "none" | "topic_name" | "topic_name_prefix";
            static fromObject(data: {
                topic_name?: string;
                topic_name_prefix?: string;
            }): TopicSelector;
            toObject(): {
                topic_name?: string;
                topic_name_prefix?: string;
            };
            serialize(): Uint8Array;
            serialize(w: pb_1.BinaryWriter): void;
            static deserialize(bytes: Uint8Array | pb_1.BinaryReader): TopicSelector;
            serializeBinary(): Uint8Array;
            static deserializeBinary(bytes: Uint8Array): TopicSelector;
        }
        class TopicPermissions extends pb_1.Message {
            #private;
            constructor(data?: any[] | ({
                role?: TopicRole;
            } & (({
                all_caches?: PermissionsType.All;
                cache_selector?: never;
            } | {
                all_caches?: never;
                cache_selector?: PermissionsType.CacheSelector;
            }) | ({
                all_topics?: PermissionsType.All;
                topic_selector?: never;
            } | {
                all_topics?: never;
                topic_selector?: PermissionsType.TopicSelector;
            }))));
            get role(): TopicRole;
            set role(value: TopicRole);
            get all_caches(): PermissionsType.All;
            set all_caches(value: PermissionsType.All);
            get has_all_caches(): boolean;
            get cache_selector(): PermissionsType.CacheSelector;
            set cache_selector(value: PermissionsType.CacheSelector);
            get has_cache_selector(): boolean;
            get all_topics(): PermissionsType.All;
            set all_topics(value: PermissionsType.All);
            get has_all_topics(): boolean;
            get topic_selector(): PermissionsType.TopicSelector;
            set topic_selector(value: PermissionsType.TopicSelector);
            get has_topic_selector(): boolean;
            get cache(): "none" | "all_caches" | "cache_selector";
            get topic(): "none" | "all_topics" | "topic_selector";
            static fromObject(data: {
                role?: TopicRole;
                all_caches?: ReturnType<typeof PermissionsType.All.prototype.toObject>;
                cache_selector?: ReturnType<typeof PermissionsType.CacheSelector.prototype.toObject>;
                all_topics?: ReturnType<typeof PermissionsType.All.prototype.toObject>;
                topic_selector?: ReturnType<typeof PermissionsType.TopicSelector.prototype.toObject>;
            }): TopicPermissions;
            toObject(): {
                role?: TopicRole;
                all_caches?: ReturnType<typeof PermissionsType.All.prototype.toObject>;
                cache_selector?: ReturnType<typeof PermissionsType.CacheSelector.prototype.toObject>;
                all_topics?: ReturnType<typeof PermissionsType.All.prototype.toObject>;
                topic_selector?: ReturnType<typeof PermissionsType.TopicSelector.prototype.toObject>;
            };
            serialize(): Uint8Array;
            serialize(w: pb_1.BinaryWriter): void;
            static deserialize(bytes: Uint8Array | pb_1.BinaryReader): TopicPermissions;
            serializeBinary(): Uint8Array;
            static deserializeBinary(bytes: Uint8Array): TopicPermissions;
        }
        class FunctionSelector extends pb_1.Message {
            #private;
            constructor(data?: any[] | ({} & (({
                function_name?: string;
                function_name_prefix?: never;
            } | {
                function_name?: never;
                function_name_prefix?: string;
            }))));
            get function_name(): string;
            set function_name(value: string);
            get has_function_name(): boolean;
            get function_name_prefix(): string;
            set function_name_prefix(value: string);
            get has_function_name_prefix(): boolean;
            get kind(): "none" | "function_name" | "function_name_prefix";
            static fromObject(data: {
                function_name?: string;
                function_name_prefix?: string;
            }): FunctionSelector;
            toObject(): {
                function_name?: string;
                function_name_prefix?: string;
            };
            serialize(): Uint8Array;
            serialize(w: pb_1.BinaryWriter): void;
            static deserialize(bytes: Uint8Array | pb_1.BinaryReader): FunctionSelector;
            serializeBinary(): Uint8Array;
            static deserializeBinary(bytes: Uint8Array): FunctionSelector;
        }
        class FunctionPermissions extends pb_1.Message {
            #private;
            constructor(data?: any[] | ({
                role?: FunctionRole;
            } & (({
                all_caches?: PermissionsType.All;
                cache_selector?: never;
            } | {
                all_caches?: never;
                cache_selector?: PermissionsType.CacheSelector;
            }) | ({
                all_functions?: PermissionsType.All;
                function_selector?: never;
            } | {
                all_functions?: never;
                function_selector?: PermissionsType.FunctionSelector;
            }))));
            get role(): FunctionRole;
            set role(value: FunctionRole);
            get all_caches(): PermissionsType.All;
            set all_caches(value: PermissionsType.All);
            get has_all_caches(): boolean;
            get cache_selector(): PermissionsType.CacheSelector;
            set cache_selector(value: PermissionsType.CacheSelector);
            get has_cache_selector(): boolean;
            get all_functions(): PermissionsType.All;
            set all_functions(value: PermissionsType.All);
            get has_all_functions(): boolean;
            get function_selector(): PermissionsType.FunctionSelector;
            set function_selector(value: PermissionsType.FunctionSelector);
            get has_function_selector(): boolean;
            get cache(): "none" | "all_caches" | "cache_selector";
            get function(): "none" | "all_functions" | "function_selector";
            static fromObject(data: {
                role?: FunctionRole;
                all_caches?: ReturnType<typeof PermissionsType.All.prototype.toObject>;
                cache_selector?: ReturnType<typeof PermissionsType.CacheSelector.prototype.toObject>;
                all_functions?: ReturnType<typeof PermissionsType.All.prototype.toObject>;
                function_selector?: ReturnType<typeof PermissionsType.FunctionSelector.prototype.toObject>;
            }): FunctionPermissions;
            toObject(): {
                role?: FunctionRole;
                all_caches?: ReturnType<typeof PermissionsType.All.prototype.toObject>;
                cache_selector?: ReturnType<typeof PermissionsType.CacheSelector.prototype.toObject>;
                all_functions?: ReturnType<typeof PermissionsType.All.prototype.toObject>;
                function_selector?: ReturnType<typeof PermissionsType.FunctionSelector.prototype.toObject>;
            };
            serialize(): Uint8Array;
            serialize(w: pb_1.BinaryWriter): void;
            static deserialize(bytes: Uint8Array | pb_1.BinaryReader): FunctionPermissions;
            serializeBinary(): Uint8Array;
            static deserializeBinary(bytes: Uint8Array): FunctionPermissions;
        }
    }
}
