[{"data":1,"prerenderedAt":1434},["ShallowReactive",2],{"content-\u002Fdocs\u002Freference\u002Ftypes":3},{"id":4,"title":5,"body":6,"description":1416,"extension":1417,"meta":1418,"metaRows":1419,"navigation":1428,"path":1429,"seo":1430,"source":1431,"stem":1432,"__hash__":1433},"docs\u002Fdocs\u002Freference\u002Ftypes.md","Types reference",{"type":7,"value":8,"toc":1397},"minimark",[9,13,20,23,37,42,245,249,355,359,484,488,572,576,658,662,810,814,939,943,1012,1016,1088,1092,1173,1177,1204,1208,1288,1292,1324,1328,1334,1357,1369,1373],[10,11,5],"h1",{"id":12},"types-reference",[14,15,16],"blockquote",{},[17,18,19],"p",{},"Every public type Attaform exports, grouped by purpose. Inference handles the common cases; these are for advanced wiring (custom adapters, deeply nested generic helpers, type-safe consumer libraries).",[21,22],"docs-meta-table",{},[17,24,25,26,31,32,36],{},"This page is reference material, alphabetical-ish by purpose. Most consumers never reach for these directly; the ",[27,28,30],"a",{"href":29},"\u002Fdocs\u002Fschemas\u002Fcontract","Inference-first DX"," doctrine means ",[33,34,35],"code",{},"useForm"," + a schema gives you autocomplete on every reactive surface without naming the types.",[38,39,41],"h2",{"id":40},"form-configuration","Form configuration",[43,44,45,61],"table",{},[46,47,48],"thead",{},[49,50,51,55,58],"tr",{},[52,53,54],"th",{},"Type",[52,56,57],{},"Source",[52,59,60],{},"Purpose",[62,63,64,81,93,109,124,139,158,176,199,217],"tbody",{},[49,65,66,72,75],{},[67,68,69],"td",{},[33,70,71],{},"UseFormConfiguration\u003CForm>",[67,73,74],{},"runtime\u002Ftypes\u002Ftypes-api",[67,76,77,78,80],{},"The options bag passed to ",[33,79,35],{},".",[49,82,83,88,90],{},[67,84,85],{},[33,86,87],{},"UseFormReturnType\u003CForm, GetValue>",[67,89,74],{},[67,91,92],{},"The whole reactive return: values, fields, errors, meta, methods.",[49,94,95,100,103],{},[67,96,97],{},[33,98,99],{},"AttaformPluginOptions",[67,101,102],{},"runtime\u002Fcore\u002Fplugin",[67,104,105,106,80],{},"Options for ",[33,107,108],{},"createAttaform({ defaults, devtools })",[49,110,111,116,118],{},[67,112,113],{},[33,114,115],{},"AttaformDefaults",[67,117,74],{},[67,119,120,121,80],{},"The fields settable via ",[33,122,123],{},"createAttaform({ defaults })",[49,125,126,131,133],{},[67,127,128],{},[33,129,130],{},"HistoryConfig",[67,132,74],{},[67,134,135,138],{},[33,136,137],{},"useForm({ history })"," shape.",[49,140,141,150,152],{},[67,142,143,146,147],{},[33,144,145],{},"PersistConfig"," \u002F ",[33,148,149],{},"PersistConfigOptions",[67,151,74],{},[67,153,154,157],{},[33,155,156],{},"useForm({ persist })"," shape (shorthand vs. full options).",[49,159,160,165,167],{},[67,161,162],{},[33,163,164],{},"PersistIncludeMode",[67,166,74],{},[67,168,169,172,173,80],{},[33,170,171],{},"'form'"," | ",[33,174,175],{},"'form+errors'",[49,177,178,183,185],{},[67,179,180],{},[33,181,182],{},"OnInvalidSubmitPolicy",[67,184,74],{},[67,186,187,172,190,172,193,172,196,80],{},[33,188,189],{},"'none'",[33,191,192],{},"'focus-first-error'",[33,194,195],{},"'scroll-to-first-error'",[33,197,198],{},"'both'",[49,200,201,209,211],{},[67,202,203,146,206],{},[33,204,205],{},"ValidateOn",[33,207,208],{},"ValidateOnConfig",[67,210,74],{},[67,212,213,216],{},[33,214,215],{},"validateOn"," field and its discriminated config.",[49,218,219,227,229],{},[67,220,221,146,224],{},[33,222,223],{},"DisplayState",[33,225,226],{},"GetDisplayState",[67,228,74],{},[67,230,231,232,172,235,172,238,172,241,244],{},"The display-state verdict (",[33,233,234],{},"idle",[33,236,237],{},"pending",[33,239,240],{},"error",[33,242,243],{},"success",") and its resolver.",[38,246,248],{"id":247},"reactive-surfaces","Reactive surfaces",[43,250,251,261],{},[46,252,253],{},[49,254,255,257,259],{},[52,256,54],{},[52,258,57],{},[52,260,60],{},[62,262,263,275,293,305,319,331,343],{},[49,264,265,270,272],{},[67,266,267],{},[33,268,269],{},"FieldState\u003CValue>",[67,271,74],{},[67,273,274],{},"The 29-property per-leaf reactive bundle.",[49,276,277,285,287],{},[67,278,279,146,282],{},[33,280,281],{},"FieldStateMap\u003CForm>",[33,283,284],{},"Entry",[67,286,74],{},[67,288,289,290,80],{},"The proxy shape exposing ",[33,291,292],{},"form.fields",[49,294,295,300,302],{},[67,296,297],{},[33,298,299],{},"FormMeta\u003CForm>",[67,301,74],{},[67,303,304],{},"Form-level aggregates over every field's state.",[49,306,307,312,314],{},[67,308,309],{},[33,310,311],{},"FormErrorsSurface\u003CForm>",[67,313,74],{},[67,315,289,316,80],{},[33,317,318],{},"form.errors",[49,320,321,326,328],{},[67,322,323],{},[33,324,325],{},"FormErrorRecord",[67,327,74],{},[67,329,330],{},"The per-path error array shape.",[49,332,333,338,340],{},[67,334,335],{},[33,336,337],{},"ErrorsProxyShape\u003CForm>",[67,339,74],{},[67,341,342],{},"Type-level view of the errors proxy for advanced helpers.",[49,344,345,350,352],{},[67,346,347],{},[33,348,349],{},"WriteMeta",[67,351,74],{},[67,353,354],{},"Metadata attached to a mutation (source, batch flags).",[38,356,358],{"id":357},"validation","Validation",[43,360,361,371],{},[46,362,363],{},[49,364,365,367,369],{},[52,366,54],{},[52,368,57],{},[52,370,60],{},[62,372,373,389,401,420,432,450,472],{},[49,374,375,380,382],{},[67,376,377],{},[33,378,379],{},"ValidationError",[67,381,74],{},[67,383,384,385,388],{},"The error shape (",[33,386,387],{},"{ path, message, code, formKey }",").",[49,390,391,396,398],{},[67,392,393],{},[33,394,395],{},"ValidationResponse\u003CForm>",[67,397,74],{},[67,399,400],{},"Discriminated success-or-failure validation result with parsed data.",[49,402,403,408,410],{},[67,404,405],{},[33,406,407],{},"ValidationResponseWithoutValue\u003CForm>",[67,409,74],{},[67,411,412,413,416,417,388],{},"Same shape minus the ",[33,414,415],{},"data"," payload (used by ",[33,418,419],{},"validateAsync",[49,421,422,427,429],{},[67,423,424],{},[33,425,426],{},"ReactiveValidationStatus\u003CForm>",[67,428,74],{},[67,430,431],{},"Discriminated pending-vs-settled reactive validation status.",[49,433,434,442,444],{},[67,435,436,146,439],{},[33,437,438],{},"PendingValidationStatus",[33,440,441],{},"SettledValidationStatus",[67,443,74],{},[67,445,446,447,80],{},"The two branches of ",[33,448,449],{},"ReactiveValidationStatus",[49,451,452,463,465],{},[67,453,454,146,457,146,460],{},[33,455,456],{},"HandleSubmit",[33,458,459],{},"OnSubmit",[33,461,462],{},"OnError",[67,464,74],{},[67,466,467,468,471],{},"The ",[33,469,470],{},"handleSubmit"," callback signatures.",[49,473,474,479,481],{},[67,475,476],{},[33,477,478],{},"SubmitHandler\u003CForm>",[67,480,74],{},[67,482,483],{},"Generic handler type for typed user submit functions.",[38,485,487],{"id":486},"schema-contract","Schema contract",[43,489,490,500],{},[46,491,492],{},[49,493,494,496,498],{},[52,495,54],{},[52,497,57],{},[52,499,60],{},[62,501,502,514,530,548,560],{},[49,503,504,509,511],{},[67,505,506],{},[33,507,508],{},"AbstractSchema\u003CForm, GetValue>",[67,510,74],{},[67,512,513],{},"The 12-method + 2-optional contract custom adapters implement.",[49,515,516,521,523],{},[67,517,518],{},[33,519,520],{},"DefaultValuesResponse\u003CForm>",[67,522,74],{},[67,524,525,526,529],{},"What ",[33,527,528],{},"getDefaultValues"," returns.",[49,531,532,537,539],{},[67,533,534],{},[33,535,536],{},"SlimPrimitiveKind",[67,538,74],{},[67,540,541,172,544,547],{},[33,542,543],{},"'string'",[33,545,546],{},"'number'"," | … (typeof-style kinds).",[49,549,550,555,557],{},[67,551,552],{},[33,553,554],{},"SlimRuntimeOf\u003CT>",[67,556,74],{},[67,558,559],{},"Type-level helper to compute the slim primitive set for a type.",[49,561,562,567,569],{},[67,563,564],{},[33,565,566],{},"FieldMetaPayload",[67,568,74],{},[67,570,571],{},"Schema-attached metadata: label, description, placeholder, meta.",[38,573,575],{"id":574},"path-types","Path types",[43,577,578,588],{},[46,579,580],{},[49,581,582,584,586],{},[52,583,54],{},[52,585,57],{},[52,587,60],{},[62,589,590,603,615,627,639],{},[49,591,592,597,600],{},[67,593,594],{},[33,595,596],{},"FlatPath\u003CForm>",[67,598,599],{},"runtime\u002Ftypes\u002Ftypes-core",[67,601,602],{},"Every reachable dotted path through the form.",[49,604,605,610,612],{},[67,606,607],{},[33,608,609],{},"PartialFlatPath\u003CForm>",[67,611,599],{},[67,613,614],{},"Same but allowing partial-prefix paths.",[49,616,617,622,624],{},[67,618,619],{},[33,620,621],{},"ArrayPath\u003CForm>",[67,623,599],{},[67,625,626],{},"Every reachable path whose value is an array.",[49,628,629,634,636],{},[67,630,631],{},[33,632,633],{},"JoinSegments\u003CSegments>",[67,635,599],{},[67,637,638],{},"Type-level join of a segment tuple into a dotted string.",[49,640,641,652,655],{},[67,642,643,146,646,146,649],{},[33,644,645],{},"Path",[33,647,648],{},"PathKey",[33,650,651],{},"Segment",[67,653,654],{},"runtime\u002Fcore\u002Fpaths",[67,656,657],{},"Canonicalized runtime path representation.",[38,659,661],{"id":660},"shape-helpers","Shape helpers",[43,663,664,674],{},[46,665,666],{},[49,667,668,670,672],{},[52,669,54],{},[52,671,57],{},[52,673,60],{},[62,675,676,688,700,718,738,753,765,777,798],{},[49,677,678,683,685],{},[67,679,680],{},[33,681,682],{},"GenericForm",[67,684,599],{},[67,686,687],{},"The most-permissive form shape; used in generics that constrain.",[49,689,690,695,697],{},[67,691,692],{},[33,693,694],{},"DeepPartial\u003CT>",[67,696,599],{},[67,698,699],{},"Every leaf made optional, recursively.",[49,701,702,710,712],{},[67,703,704,146,707],{},[33,705,706],{},"DefaultValuesInput\u003CSchema>",[33,708,709],{},"DefaultValuesShape\u003CForm>",[67,711,599],{},[67,713,467,714,717],{},[33,715,716],{},"defaultValues"," argument shape vs. the resolved tree.",[49,719,720,725,727],{},[67,721,722],{},[33,723,724],{},"WriteShape\u003CSchema>",[67,726,599],{},[67,728,729,730,733,734,737],{},"The shape ",[33,731,732],{},"setValue"," accepts (",[33,735,736],{},"z.input","-equivalent).",[49,739,740,748,750],{},[67,741,742,146,745],{},[33,743,744],{},"NestedReadType\u003CT, P>",[33,746,747],{},"NestedType\u003CT, P>",[67,749,599],{},[67,751,752],{},"Walk a type to the value at a path.",[49,754,755,760,762],{},[67,756,757],{},[33,758,759],{},"LiftedValueShape\u003CT>",[67,761,599],{},[67,763,764],{},"Helper for variant-memory and discriminated-union plumbing.",[49,766,767,772,774],{},[67,768,769],{},[33,770,771],{},"ArrayItem\u003CT>",[67,773,599],{},[67,775,776],{},"Element type of an array.",[49,778,779,793,795],{},[67,780,781,146,784,146,787,146,790],{},[33,782,783],{},"IsTuple\u003CT>",[33,785,786],{},"IsUnion\u003CT>",[33,788,789],{},"KeyofUnion\u003CT>",[33,791,792],{},"ValueOfUnion\u003CT>",[67,794,599],{},[67,796,797],{},"Type-level predicates and unions over generic values.",[49,799,800,805,807],{},[67,801,802],{},[33,803,804],{},"Primitive",[67,806,599],{},[67,808,809],{},"The base primitive set.",[38,811,813],{"id":812},"binding","Binding",[43,815,816,826],{},[46,817,818],{},[49,819,820,822,824],{},[52,821,54],{},[52,823,57],{},[52,825,60],{},[62,827,828,843,858,873,897,909,924],{},[49,829,830,835,837],{},[67,831,832],{},[33,833,834],{},"RegisterDirective",[67,836,74],{},[67,838,467,839,842],{},[33,840,841],{},"v-register"," directive type.",[49,844,845,853,855],{},[67,846,847,146,850],{},[33,848,849],{},"RegisterValue",[33,851,852],{},"RegisterOptions",[67,854,74],{},[67,856,857],{},"The value the directive accepts; the per-register options shape.",[49,859,860,865,867],{},[67,861,862],{},[33,863,864],{},"RegisterFlatPath\u003CForm>",[67,866,74],{},[67,868,869,870,80],{},"Paths bindable through ",[33,871,872],{},"register",[49,874,875,883,885],{},[67,876,877,146,880],{},[33,878,879],{},"RegisterTextModifier",[33,881,882],{},"RegisterSelectModifier",[67,884,74],{},[67,886,467,887,146,890,146,893,896],{},[33,888,889],{},".lazy",[33,891,892],{},".trim",[33,894,895],{},".number"," modifier types.",[49,898,899,904,906],{},[67,900,901],{},[33,902,903],{},"RegisterTransform\u003CV>",[67,905,74],{},[67,907,908],{},"Custom DOM ↔ value transform shape.",[49,910,911,916,918],{},[67,912,913],{},[33,914,915],{},"CustomDirectiveRegisterAssignerFn",[67,917,74],{},[67,919,467,920,923],{},[33,921,922],{},"assignKey"," custom-assigner signature.",[49,925,926,931,934],{},[67,927,928],{},[33,929,930],{},"UseRegisterReturn\u003CV>",[67,932,933],{},"runtime\u002Fcomposables\u002Fuse-register",[67,935,525,936,529],{},[33,937,938],{},"useRegister\u003CV>()",[38,940,942],{"id":941},"set-mutate","Set \u002F mutate",[43,944,945,955],{},[46,946,947],{},[49,948,949,951,953],{},[52,950,54],{},[52,952,57],{},[52,954,60],{},[62,956,957,969,984,996],{},[49,958,959,964,966],{},[67,960,961],{},[33,962,963],{},"SetValuePayload\u003CForm>",[67,965,74],{},[67,967,968],{},"Whole-form merge payload shape.",[49,970,971,976,978],{},[67,972,973],{},[33,974,975],{},"SetValueCallback\u003CForm>",[67,977,74],{},[67,979,467,980,983],{},[33,981,982],{},"(prev) => next"," callback signature.",[49,985,986,991,993],{},[67,987,988],{},[33,989,990],{},"MetaTrackerValue",[67,992,74],{},[67,994,995],{},"Internal \"I'm mutating\" flag exposed for advanced consumers.",[49,997,998,1003,1006],{},[67,999,1000],{},[33,1001,1002],{},"Unset",[67,1004,1005],{},"runtime\u002Fcore\u002Funset",[67,1007,467,1008,1011],{},[33,1009,1010],{},"unset"," sentinel's brand type.",[38,1013,1015],{"id":1014},"storage","Storage",[43,1017,1018,1028],{},[46,1019,1020],{},[49,1021,1022,1024,1026],{},[52,1023,54],{},[52,1025,57],{},[52,1027,60],{},[62,1029,1030,1042,1062,1075],{},[49,1031,1032,1037,1039],{},[67,1033,1034],{},[33,1035,1036],{},"FormStorage",[67,1038,74],{},[67,1040,1041],{},"The four-method storage interface (read \u002F write \u002F clear \u002F list).",[49,1043,1044,1049,1051],{},[67,1045,1046],{},[33,1047,1048],{},"FormStorageKind",[67,1050,74],{},[67,1052,1053,172,1056,172,1059,80],{},[33,1054,1055],{},"'local'",[33,1057,1058],{},"'session'",[33,1060,1061],{},"'indexeddb'",[49,1063,1064,1069,1072],{},[67,1065,1066],{},[33,1067,1068],{},"SerializedAttaformState",[67,1070,1071],{},"runtime\u002Fcore\u002Fserialize",[67,1073,1074],{},"The SSR payload shape.",[49,1076,1077,1082,1085],{},[67,1078,1079],{},[33,1080,1081],{},"SerializedFormData",[67,1083,1084],{},"runtime\u002Fcore\u002Fregistry",[67,1086,1087],{},"Single form's serialized state.",[38,1089,1091],{"id":1090},"wizard","Wizard",[43,1093,1094,1104],{},[46,1095,1096],{},[49,1097,1098,1100,1102],{},[52,1099,54],{},[52,1101,57],{},[52,1103,60],{},[62,1105,1106,1119,1131,1152],{},[49,1107,1108,1113,1116],{},[67,1109,1110],{},[33,1111,1112],{},"UseWizardReturnType\u003CForms>",[67,1114,1115],{},"runtime\u002Ftypes\u002Ftypes-wizard",[67,1117,1118],{},"The whole wizard return: current, statuses, navigation.",[49,1120,1121,1126,1128],{},[67,1122,1123],{},[33,1124,1125],{},"WizardOptions\u003CForms>",[67,1127,1115],{},[67,1129,1130],{},"The options bag.",[49,1132,1133,1144,1146],{},[67,1134,1135,146,1138,146,1141],{},[33,1136,1137],{},"AnyForm",[33,1139,1140],{},"FormKeyOf\u003CF>",[33,1142,1143],{},"KeysOf\u003CForms>",[67,1145,1115],{},[67,1147,1148,1149,80],{},"Helpers for typing forms passed to ",[33,1150,1151],{},"useWizard",[49,1153,1154,1159,1161],{},[67,1155,1156],{},[33,1157,1158],{},"WizardNavOptions",[67,1160,1115],{},[67,1162,1163,1164,146,1167,146,1170,80],{},"Options forwarded to ",[33,1165,1166],{},"next",[33,1168,1169],{},"back",[33,1171,1172],{},"goTo",[38,1174,1176],{"id":1175},"devtools","DevTools",[43,1178,1179,1189],{},[46,1180,1181],{},[49,1182,1183,1185,1187],{},[52,1184,54],{},[52,1186,57],{},[52,1188,60],{},[62,1190,1191],{},[49,1192,1193,1198,1201],{},[67,1194,1195],{},[33,1196,1197],{},"AttaformDevtoolsBridge",[67,1199,1200],{},"runtime\u002Fcore\u002Fdevtools-shared",[67,1202,1203],{},"The window-bridge contract the Nuxt overlay consumes.",[38,1205,1207],{"id":1206},"api-errors","API errors",[43,1209,1210,1220],{},[46,1211,1212],{},[49,1213,1214,1216,1218],{},[52,1215,54],{},[52,1217,57],{},[52,1219,60],{},[62,1221,1222,1244,1273],{},[49,1223,1224,1235,1237],{},[67,1225,1226,146,1229,146,1232],{},[33,1227,1228],{},"ApiErrorEnvelope",[33,1230,1231],{},"ApiErrorDetails",[33,1233,1234],{},"ApiErrorEntry",[67,1236,74],{},[67,1238,1239,1240,1243],{},"The shapes ",[33,1241,1242],{},"parseApiErrors"," accepts.",[49,1245,1246,1251,1254],{},[67,1247,1248],{},[33,1249,1250],{},"ParseApiErrorsOptions",[67,1252,1253],{},"runtime\u002Fcore\u002Fparse-api-errors",[67,1255,1256,1257,1260,1261,1260,1264,1260,1267,1260,1270,388],{},"Options for the parser (",[33,1258,1259],{},"formKey",", ",[33,1262,1263],{},"defaultCode",[33,1265,1266],{},"maxEntries",[33,1268,1269],{},"maxPathDepth",[33,1271,1272],{},"maxTotalSegments",[49,1274,1275,1280,1282],{},[67,1276,1277],{},[33,1278,1279],{},"ParseApiErrorsResult",[67,1281,1253],{},[67,1283,1284,1285,80],{},"Discriminated ",[33,1286,1287],{},"{ ok: true, errors } | { ok: false, errors: [], rejected }",[38,1289,1291],{"id":1290},"coercion","Coercion",[43,1293,1294,1304],{},[46,1295,1296],{},[49,1297,1298,1300,1302],{},[52,1299,54],{},[52,1301,57],{},[52,1303,60],{},[62,1305,1306],{},[49,1307,1308,1319,1321],{},[67,1309,1310,146,1313,146,1316],{},[33,1311,1312],{},"CoercionEntry",[33,1314,1315],{},"CoercionRegistry",[33,1317,1318],{},"CoercionResult",[67,1320,74],{},[67,1322,1323],{},"The schema-driven coercion shapes.",[38,1325,1327],{"id":1326},"internal-only-not-for-direct-consumption","Internal-only (not for direct consumption)",[17,1329,1330,1331,1333],{},"These types ride on internal helpers and are exported for advanced custom-adapter authors. The ",[27,1332,30],{"href":29}," doctrine means everyday consumers never need them:",[1335,1336,1337,1347,1352],"ul",{},[1338,1339,1340,146,1343,1346],"li",{},[33,1341,1342],{},"StorageLeaf",[33,1344,1345],{},"StorageShape",": the slim-write-shape internal representations the runtime walks.",[1338,1348,1349,1351],{},[33,1350,609],{},": used by the path-prefix matchers inside the runtime.",[1338,1353,1354,1356],{},[33,1355,759],{},": variant-memory plumbing.",[17,1358,1359,1360,1260,1363,1260,1366,1368],{},"Treat them as appendix items: stable enough to reference, but the public-facing surfaces (",[33,1361,1362],{},"UseFormReturnType",[33,1364,1365],{},"FieldState",[33,1367,379],{},") are what consumer code should depend on.",[38,1370,1372],{"id":1371},"where-to-next","Where to next",[1335,1374,1375,1381,1390],{},[1338,1376,1377,1380],{},[27,1378,1379],{"href":29},"The schema contract",": the high-level model these types implement.",[1338,1382,1383,1389],{},[27,1384,1386],{"href":1385},"\u002Fdocs\u002Fschemas\u002Fabstract-schema",[33,1387,1388],{},"AbstractSchema",": when you need the contract for a non-Zod schema library.",[1338,1391,1392,1396],{},[27,1393,1395],{"href":1394},"\u002Fdocs\u002Freference\u002Fentry-points","Entry-point reference",": which subpath each type ships from.",{"title":1398,"searchDepth":1399,"depth":1399,"links":1400},"",2,[1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415],{"id":40,"depth":1399,"text":41},{"id":247,"depth":1399,"text":248},{"id":357,"depth":1399,"text":358},{"id":486,"depth":1399,"text":487},{"id":574,"depth":1399,"text":575},{"id":660,"depth":1399,"text":661},{"id":812,"depth":1399,"text":813},{"id":941,"depth":1399,"text":942},{"id":1014,"depth":1399,"text":1015},{"id":1090,"depth":1399,"text":1091},{"id":1175,"depth":1399,"text":1176},{"id":1206,"depth":1399,"text":1207},{"id":1290,"depth":1399,"text":1291},{"id":1326,"depth":1399,"text":1327},{"id":1371,"depth":1399,"text":1372},"Every public type Attaform exports, grouped by purpose. Inference flows from useForm; consumers rarely need to reach for these directly, but they're documented for advanced wiring.","md",{},[1420,1423,1426],{"label":1421,"value":1422},"Category","Reference",{"label":1424,"value":1425},"Doctrine","inference-first; types exposed but rarely needed",{"label":57,"value":1427,"kind":33},"src\u002Fruntime\u002Ftypes\u002Ftypes-api.ts + types-core.ts",true,"\u002Fdocs\u002Freference\u002Ftypes",{"title":5,"description":1416},null,"docs\u002Freference\u002Ftypes","ddRZs5dnm4MwKgYEbt05SZUJ4Yswhtq9wwLfkxxHvVY",1780949762288]