export interface ContractValidationResult { missing: string[]; nonFunctions: string[]; extras: string[]; } export interface ContractValidationOptions { readonly name?: string; readonly allowExtra?: boolean; } export type ContractFunctionMap = Record unknown>; export declare function validateContract(table: Record | undefined, requiredKeys: Keys, options?: ContractValidationOptions): ContractValidationResult; export declare function assertContract(table: Record | undefined, requiredKeys: Keys, options?: ContractValidationOptions): asserts table is ContractFunctionMap; export declare const GAME_IMPORT_KEYS: readonly ["Broadcast_Print", "Com_Print", "Client_Print", "Center_Print", "sound", "positioned_sound", "local_sound", "configstring", "get_configstring", "Com_Error", "modelindex", "soundindex", "imageindex", "setmodel", "trace", "clip", "pointcontents", "inPVS", "inPHS", "SetAreaPortalState", "AreasConnected", "linkentity", "unlinkentity", "BoxEdicts", "multicast", "unicast"]; export declare const GAME_EXPORT_KEYS: readonly ["PreInit", "Init", "Shutdown", "SpawnEntities", "WriteGameJson", "ReadGameJson", "WriteLevelJson", "ReadLevelJson", "CanSave", "ClientConnect", "ClientThink", "RunFrame", "Pmove"]; export declare const CGAME_IMPORT_KEYS: readonly ["Com_Print", "get_configstring", "Com_Error", "TagMalloc", "TagFree", "AddCommandString", "CL_FrameValid", "CL_FrameTime", "CL_ClientTime", "CL_ServerFrame", "Draw_RegisterPic", "Draw_GetPicSize", "SCR_DrawChar", "SCR_DrawPic", "SCR_DrawColorPic"]; export declare const CGAME_EXPORT_KEYS: readonly ["Init", "Shutdown", "DrawHUD", "TouchPics", "LayoutFlags", "GetActiveWeaponWheelWeapon", "GetOwnedWeaponWheelWeapons", "GetWeaponWheelAmmoCount", "GetPowerupWheelCount", "GetHitMarkerDamage", "Pmove", "ParseConfigString", "ParseCenterPrint", "ClearNotify", "ClearCenterprint", "NotifyMessage", "GetMonsterFlashOffset"]; //# sourceMappingURL=contracts.d.ts.map