import { CvarFlags } from '@quake2ts/shared'; export type CvarChangeHandler = (cvar: Cvar, previousValue: string) => void; export declare class Cvar { readonly name: string; readonly defaultValue: string; readonly description?: string; readonly flags: CvarFlags; private _value; private latched?; private onChange?; modifiedCount: number; constructor({ name, defaultValue, description, flags, onChange, }: { name: string; defaultValue: string; description?: string; flags?: CvarFlags; onChange?: CvarChangeHandler; }); get string(): string; getString(): string; get number(): number; getFloat(): number; get integer(): number; getInt(): number; get boolean(): boolean; getBoolean(): boolean; set(value: string): void; reset(): void; applyLatched(): boolean; private apply; } export interface CvarInfo { name: string; value: string; defaultValue: string; flags: CvarFlags; description?: string; } export declare class CvarRegistry { private readonly cvars; onCvarChange?: (name: string, value: string) => void; register(def: { name: string; defaultValue: string; description?: string; flags?: CvarFlags; onChange?: CvarChangeHandler; }): Cvar; get(name: string): Cvar | undefined; getCvar(name: string): Cvar | undefined; setValue(name: string, value: string): Cvar; setCvar(name: string, value: string): void; resetAll(): void; applyLatched(): boolean; list(): Cvar[]; listCvars(): CvarInfo[]; } //# sourceMappingURL=cvars.d.ts.map