import { ZrRuntimeErrorCode } from "@rbxts/zirconium/out/Runtime/Runtime";
import { ZrParserErrorCode } from "@rbxts/zirconium/out/Ast/Parser";
import { ZirconLogData, ZirconLogLevel } from "../Client/Types";
import type { ReadonlyZirconPermissionSet } from "../Server/Class/ZirconGroup";
import { LogEvent } from "@rbxts/log";
export interface ZirconiumRuntimeErrorMessage {
    type: ZirconNetworkMessageType.ZirconiumRuntimeError;
    message: string;
    time: number;
    debug?: ZirconDebugInformation;
    script?: string;
    source?: readonly [
        number,
        number
    ];
    code: ZrRuntimeErrorCode;
}
export interface ZirconDebugInformation {
    LineAndColumn: readonly [
        number,
        number
    ];
    CodeLine: readonly [
        number,
        number
    ];
    TokenPosition: readonly [
        number,
        number
    ];
    TokenLinePosition: readonly [
        number,
        number
    ];
    Line: string;
}
export declare const enum ZirconNetworkMessageType {
    ZirconiumParserError = "ZrParserError",
    ZirconiumRuntimeError = "ZrRuntimeError",
    ZirconiumOutput = "ZrStandardOutput",
    ZirconStandardOutputMessage = "ZirconStandardOutput",
    ZirconStandardErrorMessage = "ZirconStandardError",
    ZirconSerilogMessage = "ZirconStructuredOutput",
    ZirconSerilogError = "ZirconStructuredError"
}
export interface ZirconiumParserErrorMessage {
    type: ZirconNetworkMessageType.ZirconiumParserError;
    message: string;
    time: number;
    script?: string;
    debug?: ZirconDebugInformation;
    source?: readonly [
        number,
        number
    ];
    code: ZrParserErrorCode;
}
export interface ZirconExecutionOutput {
    type: ZirconNetworkMessageType.ZirconiumOutput;
    time: number;
    script?: string;
    message: string;
}
export interface ZirconLogOutput {
    type: ZirconNetworkMessageType.ZirconStandardOutputMessage;
    time: number;
    data: ZirconLogData;
    tag: string;
    level: ZirconLogLevel.Verbose | ZirconLogLevel.Debug | ZirconLogLevel.Info | ZirconLogLevel.Warning;
    message: string;
}
export interface ZirconLogErrorOutput {
    type: ZirconNetworkMessageType.ZirconStandardErrorMessage;
    time: number;
    tag: string;
    data: ZirconLogData;
    level: ZirconLogLevel.Error | ZirconLogLevel.Wtf;
    message: string;
}
export interface ZirconStructuredLogOutput {
    type: ZirconNetworkMessageType.ZirconSerilogMessage;
    data: LogEvent;
    message: string;
    time: number;
}
export declare const enum RemoteId {
    StandardOutput = "ZrSiO4/StandardOutput",
    StandardError = "ZrSiO4/StandardError",
    DispatchToServer = "ZrSiO4/DispatchToServer",
    GetPlayerPermissions = "ZrSiO4/GetPlayerPermissions",
    GetServerLogMessages = "ZrSOi4/GetServerLogMessages",
    PlayerPermissionsUpdated = "ZrSOi4/PlayerPermissionsUpdated",
    ZirconInitialized = "ZrSOi4/ZirconInit",
    GetZirconInitialized = "ZrSOi4/GetZirconInit"
}
export interface ZirconPermissionsEvent {
    readonlyPermissions: ReadonlyZirconPermissionSet;
}
export declare type ZirconStandardOutput = ZirconExecutionOutput | ZirconLogOutput | ZirconStructuredLogOutput;
export declare type ZirconErrorOutput = ZirconiumRuntimeErrorMessage | ZirconiumParserErrorMessage | ZirconLogErrorOutput;
declare const Remotes: import("@rbxts/net/out/definitions/Types").DefinitionsCreateResult<{
    "ZrSiO4/StandardOutput": import("@rbxts/net/out/definitions/Types").ServerToClientEventDeclaration<[output: ZirconStandardOutput]>;
    "ZrSiO4/StandardError": import("@rbxts/net/out/definitions/Types").ServerToClientEventDeclaration<[output: ZirconErrorOutput]>;
    "ZrSiO4/DispatchToServer": import("@rbxts/net/out/definitions/Types").ClientToServerEventDeclaration<[message: string]>;
    "ZrSiO4/GetPlayerPermissions": import("@rbxts/net/out/definitions/Types").AsyncServerFunctionDeclaration<[], ReadonlyZirconPermissionSet>;
    "ZrSOi4/GetServerLogMessages": import("@rbxts/net/out/definitions/Types").AsyncServerFunctionDeclaration<[], (ZirconStandardOutput | ZirconErrorOutput)[]>;
    "ZrSOi4/PlayerPermissionsUpdated": import("@rbxts/net/out/definitions/Types").ServerToClientEventDeclaration<[event: ZirconPermissionsEvent]>;
    "ZrSOi4/ZirconInit": import("@rbxts/net/out/definitions/Types").ServerToClientEventDeclaration<[]>;
    "ZrSOi4/GetZirconInit": import("@rbxts/net/out/definitions/Types").AsyncServerFunctionDeclaration<[], boolean>;
}>;
export default Remotes;
