/// <reference types="@rbxts/types" />
import ZirconUserGroup from "../Server/Class/ZirconGroup";
import { ZirconFunction } from "../Class/ZirconFunction";
import { ZirconNamespace } from "../Class/ZirconNamespace";
import { ZirconEnum } from "../Class/ZirconEnum";
import { ZirconConfiguration } from "../Class/ZirconConfigurationBuilder";
export declare namespace ZirconRegistryService {
    /**
     * Registers a function in the global namespace to the specified group(s)
     * @param func The function to register
     * @param groups The groups
     * @deprecated Use `ZirconFunctionBuilder` + the ZirconConfigurationBuilder API
     */
    function RegisterFunction(func: ZirconFunction<any, any>, groupIds: readonly string[]): void;
    /**
     * Registers a namespace to the specified group(s)
     * @param namespace The namespace
     * @param groups The groups to register it to
     * @deprecated Use `ZirconNamespaceBuilder` + the ZirconConfigurationBuilder API
     */
    function RegisterNamespace(namespace: ZirconNamespace, groupIds: readonly string[]): void;
    function GetGroups(groupIds: readonly string[]): ZirconUserGroup[];
    /**
     * Registers an enumerable type to the specified group(s)
     * @param enumType The enumerable type
     * @param groups The groups to register the enum to
     * @returns The enum
     * @deprecated Use `ZirconEnumBuilder` + the ZirconConfigurationBuilder API
     */
    function RegisterEnum<K extends string>(enumType: ZirconEnum<K>, groupIds: readonly string[]): void;
    /**
     * Gets the highest player group for this player
     */
    function GetHighestPlayerGroup(player: Player): ZirconUserGroup | undefined;
    function GetGroupOrThrow(name: string): ZirconUserGroup;
    /**
     * Initializes Zircon as a logging console *only*.
     *
     * This is equivalent to
     * ```ts
     * ZirconServer.Registry.Init(ZirconConfigurationBuilder.logging())
     * ```
     */
    function InitLogging(): void;
    /**
     * Initializes Zircon on the server with a given configuration if specified.
     *
     * If no configuration is passed, it will behave as a logging console _only_.
     * @param configuration The configuration
     */
    function Init(configuration: ZirconConfiguration): void;
}
export declare type ZirconRegistryService = typeof ZirconRegistryService;
