{
    "pipes": [],
    "interfaces": [
        {
            "name": "Aantekening",
            "id": "interface-Aantekening-8e28c6bf4ec154e4db100e2ec1ee19fe9c2d50bc429733f8288f32277ce91963f67ec0363028632e71cfb7e05ce25001908c8dd8ee66d732632d67b993c0645b",
            "file": "src/app/registratie/domain/registration.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export type RegistrationStatus =\n  | { tag: 'Geregistreerd'; herregistratieDatum: string } // ISO date\n  | { tag: 'Geschorst'; geschorstTot: string; reden: string }\n  | { tag: 'Doorgehaald'; doorgehaaldOp: string; reden: string };\n\n/** Just the discriminant — for atoms that only need the label/color. */\nexport type StatusTag = RegistrationStatus['tag'];\n\nexport interface Registration {\n  bigNummer: string;\n  naam: string;\n  beroep: string; // arts, verpleegkundige, apotheker, ...\n  registratiedatum: string; // ISO date\n  geboortedatum: string;\n  status: RegistrationStatus;\n}\n\n/** A note is either a recognised specialism or a plain annotation — a closed set,\n    not an open string, so a typo can't slip through. */\nexport type AantekeningType = 'Specialisme' | 'Aantekening';\n\nexport interface Aantekening {\n  type: AantekeningType;\n  omschrijving: string;\n  datum: string;\n}\n",
            "properties": [
                {
                    "name": "datum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 32
                },
                {
                    "name": "omschrijving",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 31
                },
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AantekeningType",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 30
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "AantekeningDto",
            "id": "interface-AantekeningDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "datum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1251
                },
                {
                    "name": "omschrijving",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1250
                },
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1249
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "Aanvraag",
            "id": "interface-Aanvraag-53ef41435da1a133ef1e82f9615dfa958c569d482f40c63208278c47ecf4a2f5b96432a289ce386460dfe4b27d3380ba7c4b8d23cdbbf77bc686df72f5e684c1",
            "file": "src/app/registratie/domain/aanvraag.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export type AanvraagType = 'registratie' | 'herregistratie' | 'intake';\n\nexport type AanvraagStatus =\n  | { tag: 'Concept'; stepIndex: number; stepCount: number }\n  | { tag: 'InBehandeling'; referentie: string; manual: boolean } // manual=true → \"wordt handmatig beoordeeld\"\n  | { tag: 'Goedgekeurd'; referentie: string }\n  | { tag: 'Afgewezen'; referentie: string; reden: string };\n\nexport interface Aanvraag {\n  id: string;\n  type: AanvraagType;\n  status: AanvraagStatus;\n  documentIds: string[];\n  createdAt: string;\n  updatedAt: string;\n  submittedAt?: string;\n}\n\n/** Detail adds the opaque wizard snapshot used to resume a Concept. */\nexport interface AanvraagDetail extends Aanvraag {\n  draft: unknown;\n}\n",
            "properties": [
                {
                    "name": "createdAt",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 24
                },
                {
                    "name": "documentIds",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 23
                },
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 20
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AanvraagStatus",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "submittedAt",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 26
                },
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AanvraagType",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 21
                },
                {
                    "name": "updatedAt",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 25
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "AanvraagDetail",
            "id": "interface-AanvraagDetail-53ef41435da1a133ef1e82f9615dfa958c569d482f40c63208278c47ecf4a2f5b96432a289ce386460dfe4b27d3380ba7c4b8d23cdbbf77bc686df72f5e684c1",
            "file": "src/app/registratie/domain/aanvraag.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export type AanvraagType = 'registratie' | 'herregistratie' | 'intake';\n\nexport type AanvraagStatus =\n  | { tag: 'Concept'; stepIndex: number; stepCount: number }\n  | { tag: 'InBehandeling'; referentie: string; manual: boolean } // manual=true → \"wordt handmatig beoordeeld\"\n  | { tag: 'Goedgekeurd'; referentie: string }\n  | { tag: 'Afgewezen'; referentie: string; reden: string };\n\nexport interface Aanvraag {\n  id: string;\n  type: AanvraagType;\n  status: AanvraagStatus;\n  documentIds: string[];\n  createdAt: string;\n  updatedAt: string;\n  submittedAt?: string;\n}\n\n/** Detail adds the opaque wizard snapshot used to resume a Concept. */\nexport interface AanvraagDetail extends Aanvraag {\n  draft: unknown;\n}\n",
            "properties": [
                {
                    "name": "draft",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 31
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>Detail adds the opaque wizard snapshot used to resume a Concept.</p>\n",
            "rawdescription": "\nDetail adds the opaque wizard snapshot used to resume a Concept.",
            "methods": [],
            "extends": [
                "Aanvraag"
            ]
        },
        {
            "name": "AanvraagStatusDto",
            "id": "interface-AanvraagStatusDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "manual",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1259
                },
                {
                    "name": "reden",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1260
                },
                {
                    "name": "referentie",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1258
                },
                {
                    "name": "stepCount",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1257
                },
                {
                    "name": "stepIndex",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1256
                },
                {
                    "name": "tag",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1255
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "Adres",
            "id": "interface-Adres-07cec46d80a41919e40d0bcb002981627d1a30edb363d64a0a140a8af2c38ad85be5603d88030d0704870800694c5bed9c709ae6891fe83e646e90c1a67cf548",
            "file": "src/app/registratie/domain/person.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface Adres {\n  straat: string;\n  postcode: string;\n  woonplaats: string;\n}\n\nexport interface Person {\n  naam: string;\n  geboortedatum: string; // ISO date\n  adres: Adres;\n}\n",
            "properties": [
                {
                    "name": "postcode",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 4
                },
                {
                    "name": "straat",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 3
                },
                {
                    "name": "woonplaats",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 5
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>Person identity as supplied by the BRP (Basisregistratie Personen).</p>\n",
            "rawdescription": "\nPerson identity as supplied by the BRP (Basisregistratie Personen).",
            "methods": [],
            "extends": []
        },
        {
            "name": "AdresDto",
            "id": "interface-AdresDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "postcode",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1265
                },
                {
                    "name": "straat",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1264
                },
                {
                    "name": "woonplaats",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1266
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "AdresDto",
            "id": "interface-AdresDto-10d81af9017230c2e0704c882140be892d1e2a8d6343f8d169bcdb8e99516bc135a9b17faf4ea0fb5d4da561476db228b7f2dab7d27e4c262acdecbe1b7f6241-1",
            "file": "src/app/registratie/contracts/dashboard-view.dto.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export type RegistrationStatusDto =\n  | { tag: 'Geregistreerd'; herregistratieDatum: string } // ISO date\n  | { tag: 'Geschorst'; geschorstTot: string; reden: string }\n  | { tag: 'Doorgehaald'; doorgehaaldOp: string; reden: string };\n\nexport interface RegistrationDto {\n  bigNummer: string;\n  naam: string;\n  beroep: string;\n  registratiedatum: string; // ISO date\n  geboortedatum: string;\n  status: RegistrationStatusDto;\n}\n\nexport interface AdresDto {\n  straat: string;\n  postcode: string;\n  woonplaats: string;\n}\n\nexport interface PersonDto {\n  naam: string;\n  geboortedatum: string; // ISO date\n  adres: AdresDto;\n}\n\n/** Server-computed decisions. Rendered by the FE as-is (decision DTO, ADR-0001):\n    the eligibility rule lives on the backend; the optional reason lets the UI\n    explain itself without knowing the rule. */\nexport interface HerregistratieDecisions {\n  eligibleForHerregistratie: boolean;\n  herregistratieReason?: string;\n}\n\nexport interface DashboardViewDto {\n  registration: RegistrationDto;\n  person: PersonDto;\n  decisions: HerregistratieDecisions;\n}\n",
            "properties": [
                {
                    "name": "postcode",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 37
                },
                {
                    "name": "straat",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 36
                },
                {
                    "name": "woonplaats",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 38
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": [],
            "isDuplicate": true,
            "duplicateId": 1,
            "duplicateName": "AdresDto-1"
        },
        {
            "name": "AdresValue",
            "id": "interface-AdresValue-486bc51fe6e0580e73e1eaff7fadd0391ce7111e5b66294eff93f0f0dc84f19a80abb6dd269909450a94d13a2d7d24aa3b167dbe8472717ecd4208f00c5ae6bc",
            "file": "src/app/registratie/ui/address-fields/address-fields.component.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Component, input, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormFieldComponent } from '@shared/ui/form-field/form-field.component';\nimport { TextInputComponent } from '@shared/ui/text-input/text-input.component';\n\nexport interface AdresValue {\n  straat: string;\n  postcode: string;\n  woonplaats: string;\n}\nexport type AdresErrors = Partial<Record<keyof AdresValue, string>>;\n\n/** Organism: the editable address block (straat / postcode / woonplaats), grouped\n    in a fieldset/legend. Pure & presentational — values in via `value`, errors in\n    via `errors`, every keystroke out via `fieldChange`. No store, no services, no\n    internal state; the container owns the Model and decides what a change means\n    (registratie-wizard dispatches SetField; change-request-form sets its props).\n    Composes the form-field molecule (×3) so labels/error wiring stay consistent. */\n@Component({\n  selector: 'app-address-fields',\n  imports: [FormsModule, FormFieldComponent, TextInputComponent],\n  styles: [`\n    fieldset{border:0;margin:0;padding:0;min-inline-size:0}\n    legend{padding:0;font-weight:var(--rhc-text-font-weight-semi-bold);margin-block-end:var(--rhc-space-max-md)}\n  `],\n  template: `\n    <fieldset>\n      <legend>{{ legend() }}</legend>\n      <app-form-field i18n-label=\"@@address.straat\" label=\"Straat en huisnummer\" [fieldId]=\"idPrefix() + '-straat'\" required [error]=\"errors().straat\">\n        <app-text-input [inputId]=\"idPrefix() + '-straat'\" [invalid]=\"!!errors().straat\"\n          [ngModel]=\"value().straat\" (ngModelChange)=\"fieldChange.emit({ key: 'straat', value: $event })\"\n          name=\"straat\" [ngModelOptions]=\"{ standalone: true }\" />\n      </app-form-field>\n      <app-form-field i18n-label=\"@@address.postcode\" label=\"Postcode\" [fieldId]=\"idPrefix() + '-postcode'\" required [error]=\"errors().postcode\">\n        <app-text-input [inputId]=\"idPrefix() + '-postcode'\" [invalid]=\"!!errors().postcode\"\n          [ngModel]=\"value().postcode\" (ngModelChange)=\"fieldChange.emit({ key: 'postcode', value: $event })\"\n          name=\"postcode\" i18n-placeholder=\"@@address.postcodePlaceholder\" placeholder=\"1234 AB\" [ngModelOptions]=\"{ standalone: true }\" />\n      </app-form-field>\n      <app-form-field i18n-label=\"@@address.woonplaats\" label=\"Woonplaats\" [fieldId]=\"idPrefix() + '-woonplaats'\" required [error]=\"errors().woonplaats\">\n        <app-text-input [inputId]=\"idPrefix() + '-woonplaats'\" [invalid]=\"!!errors().woonplaats\"\n          [ngModel]=\"value().woonplaats\" (ngModelChange)=\"fieldChange.emit({ key: 'woonplaats', value: $event })\"\n          name=\"woonplaats\" [ngModelOptions]=\"{ standalone: true }\" />\n      </app-form-field>\n    </fieldset>\n  `,\n})\nexport class AddressFieldsComponent {\n  value = input.required<AdresValue>();\n  errors = input<AdresErrors>({});\n  /** Prefix for field ids/labels — keeps them unique if two blocks ever co-exist. */\n  idPrefix = input('adres');\n  legend = input($localize`:@@address.legend:Adres`);\n  fieldChange = output<{ key: keyof AdresValue; value: string }>();\n}\n",
            "properties": [
                {
                    "name": "postcode",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 8
                },
                {
                    "name": "straat",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 7
                },
                {
                    "name": "woonplaats",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 9
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "Answers",
            "id": "interface-Answers-7bf45afef74ccc5d1b6fecd5ce7c56a21a9244e3daaf5f01717b29ec9163e0e4416b96e2a722a32e9260ca035e9a76c4d7a02d13c5dbd784c16d2d9a03e58bc9",
            "file": "src/app/herregistratie/domain/intake.machine.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Result, ok, err, assertNever } from '@shared/kernel/fp';\nimport { Uren, parseUren } from '@registratie/domain/value-objects/uren';\n\n/**\n * A FIXED 3-step wizard with progressive disclosure. The steps never change in\n * number (always `STEPS`); instead, follow-up questions appear *inline within a\n * step* depending on earlier answers — answer \"buiten Nederland gewerkt? → ja\"\n * and the country/hours questions reveal in the same step; report few hours and\n * the scholing-question reveals inside the 'werk' step. \"Is this field required\n * right now\" is a pure function (`validateStep`/`lageUren`), so it's trivial to\n * test and impossible to get out of sync with the data.\n */\n\nexport type JaNee = 'ja' | 'nee';\n\n/** The three fixed steps. Each step groups one or more questions. */\nexport type StepId = 'buitenland' | 'werk' | 'review';\n\n/** One record carried across every step (and persisted). All optional: the user\n    fills it in gradually, and branches may never ask some fields. */\nexport interface Answers {\n  buitenlandGewerkt?: JaNee; // Q1\n  land?: string; // Q1a — only when buitenlandGewerkt === 'ja'\n  buitenlandseUren?: string; // Q1b — only when buitenlandGewerkt === 'ja'\n  uren?: string; // Q2 — uren in NL\n  scholingGevolgd?: JaNee; // Q3 — only when total hours are below the threshold\n  punten?: string; // Q4\n}\n\n/** What we have after the review step parses — guaranteed valid/typed. */\nexport interface ValidIntake {\n  werktBuitenland: boolean;\n  land?: string;\n  buitenlandseUren?: Uren;\n  uren: Uren;\n  aanvullendeScholing?: boolean;\n  punten?: Uren; // only collected when aanvullende scholing is gevolgd (scholingGevolgd === 'ja')\n}\n\n/** Demo fallback only — the real threshold is a SERVER-OWNED policy value fetched\n    at runtime (see IntakePolicyDto / SetPolicy). ponytail: default is the offline\n    fallback; the server value wins. */\nexport const SCHOLING_THRESHOLD_DEFAULT = 1000;\n\n/** True when NL-hours are low enough that the scholing question must be answered.\n    The threshold is passed in (server-owned), not hardcoded. */\nexport function lageUren(a: Answers, scholingThreshold = SCHOLING_THRESHOLD_DEFAULT): boolean {\n  const r = parseUren(a.uren ?? '');\n  return r.ok && r.value < scholingThreshold;\n}\n\n/** The fixed step list. Number of steps never changes; questions reveal inline. */\nexport const STEPS: StepId[] = ['buitenland', 'werk', 'review'];\n\n/** Per-field error map: one message per question, since a step holds several. */\ntype Errors = Partial<Record<keyof Answers, string>>;\n\nexport type IntakeState =\n  | { tag: 'Answering'; answers: Answers; cursor: number; errors: Errors; scholingThreshold: number }\n  | { tag: 'Submitting'; data: ValidIntake }\n  | { tag: 'Submitted'; data: ValidIntake }\n  | { tag: 'Failed'; data: ValidIntake; error: string };\n\nexport const initial: IntakeState = { tag: 'Answering', answers: {}, cursor: 0, errors: {}, scholingThreshold: SCHOLING_THRESHOLD_DEFAULT };\n\n/** Which step the cursor currently points at (clamped to the fixed list). */\nexport function currentStep(s: Extract<IntakeState, { tag: 'Answering' }>): StepId {\n  return STEPS[Math.min(s.cursor, STEPS.length - 1)];\n}\n\n/** Has the user meaningfully started, so it's worth persisting as a Concept?\n    (No auto-prefill here — pristine means truly untouched.) */\nexport function hasProgress(s: Extract<IntakeState, { tag: 'Answering' }>): boolean {\n  return s.cursor > 0 || Object.keys(s.answers).length > 0;\n}\n\n/** Validate every question currently visible in ONE step. Errors keyed per field. */\nfunction validateStep(step: StepId, a: Answers, scholingThreshold: number): Result<Errors, void> {\n  const errors: Errors = {};\n  switch (step) {\n    case 'buitenland':\n      if (!a.buitenlandGewerkt) errors.buitenlandGewerkt = $localize`:@@validation.maakKeuze:Maak een keuze.`;\n      else if (a.buitenlandGewerkt === 'ja') {\n        if (!a.land || a.land.trim() === '') errors.land = $localize`:@@validation.land:Vul een land in.`;\n        const u = parseUren(a.buitenlandseUren ?? '');\n        if (!u.ok) errors.buitenlandseUren = u.error;\n      }\n      break;\n    case 'werk': {\n      const u = parseUren(a.uren ?? '');\n      if (!u.ok) errors.uren = u.error;\n      if (lageUren(a, scholingThreshold) && !a.scholingGevolgd) errors.scholingGevolgd = $localize`:@@validation.maakKeuze:Maak een keuze.`;\n      // Nascholingspunten are only asked (and required) when scholing was followed.\n      if (a.scholingGevolgd === 'ja') {\n        const p = parseUren(a.punten ?? '');\n        if (!p.ok) errors.punten = p.error;\n      }\n      break;\n    }\n    case 'review':\n      break; // review shows a summary; no own fields\n    default:\n      return assertNever(step);\n  }\n  return Object.keys(errors).length > 0 ? err(errors) : ok(undefined);\n}\n\n/** Parse the whole questionnaire into a ValidIntake (called on submit). */\nfunction validateAll(a: Answers, scholingThreshold: number): Result<Errors, ValidIntake> {\n  const errors: Errors = {};\n  for (const step of STEPS) {\n    const r = validateStep(step, a, scholingThreshold);\n    if (!r.ok) Object.assign(errors, r.error);\n  }\n  if (Object.keys(errors).length > 0) return err(errors);\n\n  const uren = parseUren(a.uren ?? '');\n  // validateStep guaranteed uren parses, but keep the compiler happy.\n  if (!uren.ok) return err(errors);\n\n  const werktBuitenland = a.buitenlandGewerkt === 'ja';\n  const buitenland = parseUren(a.buitenlandseUren ?? '');\n  // Punten are only collected when aanvullende scholing was gevolgd.\n  const punten = a.scholingGevolgd === 'ja' ? parseUren(a.punten ?? '') : undefined;\n  return ok({\n    werktBuitenland,\n    land: werktBuitenland ? a.land : undefined,\n    buitenlandseUren: werktBuitenland && buitenland.ok ? buitenland.value : undefined,\n    uren: uren.value,\n    aanvullendeScholing: lageUren(a, scholingThreshold) ? a.scholingGevolgd === 'ja' : undefined,\n    punten: punten?.ok ? punten.value : undefined,\n  });\n}\n\nexport function setAnswer(s: IntakeState, key: keyof Answers, value: string): IntakeState {\n  if (s.tag !== 'Answering') return s;\n  // Steps are fixed, so editing an answer never moves the cursor — it only\n  // reveals/hides inline questions within the current step.\n  return { ...s, answers: { ...s.answers, [key]: value } };\n}\n\nexport function next(s: IntakeState): IntakeState {\n  if (s.tag !== 'Answering') return s;\n  const r = validateStep(currentStep(s), s.answers, s.scholingThreshold);\n  if (!r.ok) return { ...s, errors: r.error };\n  return { ...s, cursor: Math.min(s.cursor + 1, STEPS.length - 1), errors: {} };\n}\n\n/** Apply a server-owned policy value (e.g. the scholing threshold). */\nexport function setPolicy(s: IntakeState, scholingThreshold: number): IntakeState {\n  return s.tag === 'Answering' ? { ...s, scholingThreshold } : s;\n}\n\nexport function back(s: IntakeState): IntakeState {\n  if (s.tag !== 'Answering' || s.cursor === 0) return s;\n  return { ...s, cursor: s.cursor - 1, errors: {} };\n}\n\n/** Jump back to an earlier step to correct answers (review → step N). Forward\n    jumps are not allowed (would skip validation). */\nexport function gaNaarStap(s: IntakeState, cursor: number): IntakeState {\n  if (s.tag !== 'Answering' || cursor < 0 || cursor >= s.cursor) return s;\n  return { ...s, cursor, errors: {} };\n}\n\nexport function submit(s: IntakeState): IntakeState {\n  if (s.tag !== 'Answering') return s;\n  const r = validateAll(s.answers, s.scholingThreshold);\n  return r.ok ? { tag: 'Submitting', data: r.value } : { ...s, errors: r.error };\n}\n\nexport function resolve(s: IntakeState, r: Result<string, void>): IntakeState {\n  if (s.tag !== 'Submitting') return s;\n  return r.ok ? { tag: 'Submitted', data: s.data } : { tag: 'Failed', data: s.data, error: r.error };\n}\n\nexport type IntakeMsg =\n  | { tag: 'SetAnswer'; key: keyof Answers; value: string }\n  | { tag: 'Next' }\n  | { tag: 'Back' }\n  | { tag: 'GaNaarStap'; cursor: number }\n  | { tag: 'Submit' }\n  | { tag: 'Retry' }\n  | { tag: 'SubmitConfirmed' }\n  | { tag: 'SubmitFailed'; error: string }\n  | { tag: 'SetPolicy'; scholingThreshold: number }\n  | { tag: 'Seed'; state: IntakeState };\n\nexport function reduce(s: IntakeState, m: IntakeMsg): IntakeState {\n  switch (m.tag) {\n    case 'SetAnswer':\n      return setAnswer(s, m.key, m.value);\n    case 'Next':\n      return next(s);\n    case 'Back':\n      return back(s);\n    case 'GaNaarStap':\n      return gaNaarStap(s, m.cursor);\n    case 'Submit':\n      return submit(s);\n    case 'Retry':\n      return s.tag === 'Failed' ? { tag: 'Submitting', data: s.data } : s;\n    case 'SubmitConfirmed':\n      return s.tag === 'Submitting' ? { tag: 'Submitted', data: s.data } : s;\n    case 'SubmitFailed':\n      return s.tag === 'Submitting' ? { tag: 'Failed', data: s.data, error: m.error } : s;\n    case 'SetPolicy':\n      return setPolicy(s, m.scholingThreshold);\n    case 'Seed':\n      return m.state;\n    default:\n      return assertNever(m);\n  }\n}\n",
            "properties": [
                {
                    "name": "buitenlandGewerkt",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "JaNee",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "buitenlandseUren",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 24
                },
                {
                    "name": "land",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 23
                },
                {
                    "name": "punten",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 27
                },
                {
                    "name": "scholingGevolgd",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "JaNee",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 26
                },
                {
                    "name": "uren",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 25
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>One record carried across every step (and persisted). All optional: the user\nfills it in gradually, and branches may never ask some fields.</p>\n",
            "rawdescription": "\nOne record carried across every step (and persisted). All optional: the user\nfills it in gradually, and branches may never ask some fields.",
            "methods": [],
            "extends": []
        },
        {
            "name": "ApplicationDetailDto",
            "id": "interface-ApplicationDetailDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "createdAt",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1275
                },
                {
                    "name": "documentIds",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1274
                },
                {
                    "name": "draft",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1273
                },
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1270
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AanvraagStatusDto",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1272
                },
                {
                    "name": "submittedAt",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1277
                },
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1271
                },
                {
                    "name": "updatedAt",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1276
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "ApplicationSummaryDto",
            "id": "interface-ApplicationSummaryDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "createdAt",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1285
                },
                {
                    "name": "documentIds",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1284
                },
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1281
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AanvraagStatusDto",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1283
                },
                {
                    "name": "submittedAt",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1287
                },
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1282
                },
                {
                    "name": "updatedAt",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1286
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "BigProfile",
            "id": "interface-BigProfile-c363e317899ff3cd424b0033c2f57ea14e9617f52401171543b5a82d67046a894a2806afc198812808d0080b3093471e081f7e79b12f2c8c37eef68785e47a43",
            "file": "src/app/registratie/domain/big-profile.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Registration } from './registration';\nimport { Person } from './person';\n\n/**\n * The view the dashboard/detail render: a registration (from the BIG-register)\n * enriched with person data (from the BRP). It only exists when BOTH sources\n * have loaded — see BigProfileStore, which builds it with map2.\n */\nexport interface BigProfile {\n  registration: Registration;\n  person: Person;\n}\n",
            "properties": [
                {
                    "name": "person",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Person",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 11
                },
                {
                    "name": "registration",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Registration",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 10
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>The view the dashboard/detail render: a registration (from the BIG-register)\nenriched with person data (from the BRP). It only exists when BOTH sources\nhave loaded — see BigProfileStore, which builds it with map2.</p>\n",
            "rawdescription": "\n\nThe view the dashboard/detail render: a registration (from the BIG-register)\nenriched with person data (from the BRP). It only exists when BOTH sources\nhave loaded — see BigProfileStore, which builds it with map2.\n",
            "methods": [],
            "extends": []
        },
        {
            "name": "BreadcrumbItem",
            "id": "interface-BreadcrumbItem-ca2d9e2ecbcf92ee4c86cc2f0d2eafa6be15870319719a9c4a3c7ad14597a383bc488f7503bf0e608f37b57ca8f2d7b790dac822e4908bdff4324cb617e8ce98",
            "file": "src/app/shared/layout/breadcrumb/breadcrumb.component.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Component, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nexport interface BreadcrumbItem {\n  label: string;\n  link?: string; // omit on the current (last) page\n}\n\n/** Chrome: breadcrumb navigation, styled for the CIBG titlebar (`.titlebar .title`) —\n    plain links with a chevron `::after` from the CIBG Icons font, current page as an\n    unlinked, bold span. Domain-free — the caller supplies the trail. */\n@Component({\n  selector: 'app-breadcrumb',\n  imports: [RouterLink],\n  // CIBG's global \"header nav\" background rule matches ANY nav inside a <header>\n  // — including this one, wherever it's mounted. Override it so the breadcrumb\n  // never carries its own background (it should show whatever's behind it, e.g.\n  // the titlebar's robijn fill).\n  styles: [`nav{background:none}`],\n  template: `\n    <nav i18n-aria-label=\"@@breadcrumb.aria\" aria-label=\"Kruimelpad\">\n      <span class=\"visually-hidden\" i18n=\"@@breadcrumb.hier\">U bevindt zich hier:</span>\n      @for (item of items(); track item.label; let last = $last) {\n        @if (item.link && !last) {\n          <a [routerLink]=\"item.link\">{{ item.label }}</a>\n        } @else {\n          <span aria-current=\"page\">{{ item.label }}</span>\n        }\n      }\n    </nav>\n  `,\n})\nexport class BreadcrumbComponent {\n  items = input.required<BreadcrumbItem[]>();\n}\n",
            "properties": [
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 5
                },
                {
                    "name": "link",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 6
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "Brief",
            "id": "interface-Brief-039c5d6b394bb2232cfe3dcb751c570fd3683a09171bc3d7a7a6498185bff667b40236840f0c1010e79861a99c27279a3c324ae82cebd97ef0a73f87f27878a4",
            "file": "src/app/brief/domain/brief.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { RichTextBlock, placeholderKeysIn } from '@shared/kernel/rich-text';\nimport { Diagnostic, lintPlaceholders, PlaceholderDef } from './placeholders';\n\n/**\n * The `Brief` (letter) entity and its derived selectors.\n *\n * A letter has a FIXED section structure (from a template, server-instantiated); the\n * drafter fills a skeleton, never reorders sections. Each block is either a frozen\n * snapshot of a library passage (provenance kept) or free text. Everything the UI\n * needs beyond the stored shape — diagnostics, unresolved placeholders, whether it\n * can be submitted — is DERIVED here, never stored.\n */\n\nexport type PassageScope = 'global' | 'beroep';\n\n// Re-export placeholderKeysIn for one-import convenience at call sites.\nexport { placeholderKeysIn };\n\n/** A passage in the library (the source). Snapshotted into a letter on insert. */\nexport interface LibraryPassage {\n  readonly passageId: string;\n  readonly scope: PassageScope;\n  readonly beroep?: string; // set when scope === 'beroep'\n  readonly sectionKey: string;\n  readonly label: string;\n  readonly content: RichTextBlock;\n  readonly version: number; // library version, for provenance only\n}\n\n/** A block inside a letter section: a frozen passage snapshot, or free text. */\nexport type LetterBlock =\n  | {\n      readonly type: 'passage';\n      readonly blockId: string;\n      readonly sourcePassageId: string; // provenance\n      readonly sourceVersion: number; // library version at snapshot time (audit only)\n      readonly content: RichTextBlock; // FROZEN, possibly edited — source of truth for this block\n      readonly edited: boolean; // changed from the snapshot?\n    }\n  | {\n      readonly type: 'freeText';\n      readonly blockId: string;\n      readonly content: RichTextBlock;\n    };\n\nexport interface LetterSection {\n  readonly sectionKey: string;\n  readonly title: string;\n  readonly required: boolean;\n  // Predefined template sections (aanhef, slot) arrive locked and prefilled — the drafter\n  // composes only the unlocked section(s). The reducer refuses edits to locked sections.\n  readonly locked: boolean;\n  readonly blocks: readonly LetterBlock[];\n}\n\n/** The approval state machine as a sum type — transitions are total and guarded in\n    `brief.machine.ts`; illegal transitions are unrepresentable. */\nexport type BriefStatus =\n  | { readonly tag: 'draft' }\n  | { readonly tag: 'submitted'; readonly submittedBy: string; readonly submittedAt: string }\n  | { readonly tag: 'approved'; readonly approvedBy: string; readonly approvedAt: string }\n  | { readonly tag: 'rejected'; readonly rejectedBy: string; readonly rejectedAt: string; readonly comments: string }\n  | { readonly tag: 'sent'; readonly sentAt: string };\n\nexport interface Brief {\n  readonly briefId: string;\n  readonly beroep: string; // drives which beroep-scoped passages apply\n  readonly templateId: string;\n  readonly placeholders: readonly PlaceholderDef[]; // valid fields for this letter\n  readonly sections: readonly LetterSection[]; // instantiated from the template, in order\n  readonly status: BriefStatus;\n  readonly drafterId: string;\n}\n\n// --- Derived selectors (pure; recomputed, never stored) ---\n\nexport function allBlocks(brief: Brief): LetterBlock[] {\n  return brief.sections.flatMap((s) => s.blocks);\n}\n\n/** Every diagnostic in the letter, in section→block→node order. This is what the\n    diagnostics panel renders and what the send gate checks. */\nexport function allDiagnostics(brief: Brief): Diagnostic[] {\n  return allBlocks(brief).flatMap((b) => lintPlaceholders(b.content, brief.placeholders, b.blockId));\n}\n\nexport function hasBlockingErrors(diagnostics: readonly Diagnostic[]): boolean {\n  return diagnostics.some((d) => d.severity === 'error');\n}\n\n/** Manual (non-auto-resolvable) placeholder keys still present, deduped. These are the\n    `unresolved-at-send` warnings, surfaced as a completeness list. */\nexport function unresolvedPlaceholders(brief: Brief): string[] {\n  const auto = new Set(brief.placeholders.filter((p) => p.autoResolvable).map((p) => p.key));\n  const used = allBlocks(brief).flatMap((b) => placeholderKeysIn(b.content));\n  return [...new Set(used.filter((k) => !auto.has(k)))];\n}\n\n/** A letter can be submitted only when every REQUIRED section has at least one block. */\nexport function canSubmit(brief: Brief): boolean {\n  return brief.sections.every((s) => !s.required || s.blocks.length > 0);\n}\n",
            "properties": [
                {
                    "name": "beroep",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 67,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "briefId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 66,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "drafterId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 72,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "placeholders",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 69,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "sections",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 70,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "BriefStatus",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 71,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "templateId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 68,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "BriefDto",
            "id": "interface-BriefDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "beroep",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1292
                },
                {
                    "name": "briefId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1291
                },
                {
                    "name": "drafterId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1297
                },
                {
                    "name": "placeholders",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "PlaceholderDefDto[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1294
                },
                {
                    "name": "sections",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LetterSectionDto[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1295
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "BriefStatusDto",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1296
                },
                {
                    "name": "templateId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1293
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "BriefStatusDto",
            "id": "interface-BriefStatusDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "approvedAt",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1305
                },
                {
                    "name": "approvedBy",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1304
                },
                {
                    "name": "comments",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1308
                },
                {
                    "name": "rejectedAt",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1307
                },
                {
                    "name": "rejectedBy",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1306
                },
                {
                    "name": "sentAt",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1309
                },
                {
                    "name": "submittedAt",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1303
                },
                {
                    "name": "submittedBy",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1302
                },
                {
                    "name": "tag",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1301
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "BriefView",
            "id": "interface-BriefView-2cdc4ea68dd5d8941b52d3a3d324bdc1debb1e3cbeb7bb63c0d4dd1fc73b3b81b9fea5eb7cd8a3a9900f3fa0847318c385460cb0c7c8e3f98b841c4a958a185c",
            "file": "src/app/brief/infrastructure/brief.adapter.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Injectable, inject } from '@angular/core';\nimport { Result, ok, err } from '@shared/kernel/fp';\nimport { runSubmit } from '@shared/application/submit';\nimport {\n  ApiClient,\n  BriefDto,\n  BriefStatusDto,\n  BriefViewDto,\n  LetterBlockDto,\n  LetterSectionDto,\n  LibraryPassageDto,\n  PlaceholderDefDto,\n  RichTextBlockDto,\n  RichTextNodeDto,\n} from '@shared/infrastructure/api-client';\nimport { Brief, BriefStatus, LetterBlock, LetterSection, LibraryPassage, PassageScope } from '@brief/domain/brief';\nimport { PlaceholderDef } from '@brief/domain/placeholders';\nimport { Mark, Paragraph, RichTextBlock, RichTextNode } from '@shared/kernel/rich-text';\n\n/**\n * The only place brief HTTP lives (ADR-0001 anti-corruption boundary). The wire\n * uses FLAT unions (a `type`/`tag` string + nullable fields, the repo convention);\n * the `parse*` boundary narrows them into the domain's proper discriminated unions\n * and rejects malformed shapes. Mutations go through `runSubmit` (ProblemDetails →\n * error string), then parse the returned brief.\n */\n\nexport interface BriefView {\n  readonly brief: Brief;\n  readonly availablePassages: LibraryPassage[];\n}\n\nexport const BRIEF_LOAD_FAILED = $localize`:@@brief.load.failed:De brief kon niet worden geladen.`;\nexport const BRIEF_ACTION_FAILED = $localize`:@@brief.action.failed:De actie is niet gelukt. Probeer het later opnieuw.`;\n\n@Injectable({ providedIn: 'root' })\nexport class BriefAdapter {\n  private client = inject(ApiClient);\n\n  async load(): Promise<Result<string, BriefView>> {\n    const r = await runSubmit(() => this.client.briefGET(), BRIEF_LOAD_FAILED);\n    return r.ok ? parseBriefView(r.value) : r;\n  }\n\n  async save(sections: readonly LetterSection[]): Promise<Result<string, Brief>> {\n    const r = await runSubmit(() => this.client.briefPUT({ sections: sections.map(sectionToDto) }), BRIEF_ACTION_FAILED);\n    return r.ok ? parseBrief(r.value) : r;\n  }\n\n  async submit(): Promise<Result<string, Brief>> {\n    const r = await runSubmit(() => this.client.briefSubmit(), BRIEF_ACTION_FAILED);\n    return r.ok ? parseBrief(r.value) : r;\n  }\n\n  async approve(): Promise<Result<string, Brief>> {\n    const r = await runSubmit(() => this.client.approve(), BRIEF_ACTION_FAILED);\n    return r.ok ? parseBrief(r.value) : r;\n  }\n\n  async reject(comments: string): Promise<Result<string, Brief>> {\n    const r = await runSubmit(() => this.client.reject({ comments }), BRIEF_ACTION_FAILED);\n    return r.ok ? parseBrief(r.value) : r;\n  }\n\n  async send(): Promise<Result<string, Brief>> {\n    const r = await runSubmit(() => this.client.send(), BRIEF_ACTION_FAILED);\n    return r.ok ? parseBrief(r.value) : r;\n  }\n\n  /** Demo \"start over\" — recreate a fresh brief server-side and return the new view. */\n  async reset(): Promise<Result<string, BriefView>> {\n    const r = await runSubmit(() => this.client.briefReset(), BRIEF_ACTION_FAILED);\n    return r.ok ? parseBriefView(r.value) : r;\n  }\n}\n\n// --- parse: wire (flat) → domain (discriminated unions), validating at the boundary ---\n\nconst MARKS: readonly string[] = ['bold', 'italic', 'underline'];\n\nexport function parseNode(dto: RichTextNodeDto): Result<string, RichTextNode> {\n  switch (dto.type) {\n    case 'text': {\n      if (typeof dto.text !== 'string') return err('node: text missing text');\n      const marks = dto.marks?.filter((m): m is Mark => MARKS.includes(m));\n      return ok(marks && marks.length ? { type: 'text', text: dto.text, marks } : { type: 'text', text: dto.text });\n    }\n    case 'placeholder':\n      return typeof dto.key === 'string' ? ok({ type: 'placeholder', key: dto.key }) : err('node: placeholder missing key');\n    case 'lineBreak':\n      return ok({ type: 'lineBreak' });\n    default:\n      return err(`node: unknown type ${dto.type}`);\n  }\n}\n\nexport function parseBlockContent(dto: RichTextBlockDto | undefined): Result<string, RichTextBlock> {\n  if (!dto || !Array.isArray(dto.paragraphs)) return err('content: paragraphs not an array');\n  const paragraphs: Paragraph[] = [];\n  for (const p of dto.paragraphs) {\n    const nodes: RichTextNode[] = [];\n    for (const n of p.nodes ?? []) {\n      const parsed = parseNode(n);\n      if (!parsed.ok) return parsed;\n      nodes.push(parsed.value);\n    }\n    const list = p.list === 'bullet' || p.list === 'number' ? p.list : undefined;\n    paragraphs.push(list ? { nodes, list } : { nodes });\n  }\n  return ok({ paragraphs });\n}\n\nfunction parseBlock(dto: LetterBlockDto): Result<string, LetterBlock> {\n  if (typeof dto.blockId !== 'string') return err('block: missing blockId');\n  const content = parseBlockContent(dto.content);\n  if (!content.ok) return content;\n  switch (dto.type) {\n    case 'passage':\n      if (typeof dto.sourcePassageId !== 'string' || typeof dto.sourceVersion !== 'number') return err('block: bad passage provenance');\n      return ok({\n        type: 'passage',\n        blockId: dto.blockId,\n        sourcePassageId: dto.sourcePassageId,\n        sourceVersion: dto.sourceVersion,\n        content: content.value,\n        edited: dto.edited ?? false,\n      });\n    case 'freeText':\n      return ok({ type: 'freeText', blockId: dto.blockId, content: content.value });\n    default:\n      return err(`block: unknown type ${dto.type}`);\n  }\n}\n\nfunction parseSection(dto: LetterSectionDto): Result<string, LetterSection> {\n  if (typeof dto.sectionKey !== 'string' || typeof dto.title !== 'string' || typeof dto.required !== 'boolean') {\n    return err('section: bad shape');\n  }\n  const blocks: LetterBlock[] = [];\n  for (const b of dto.blocks ?? []) {\n    const parsed = parseBlock(b);\n    if (!parsed.ok) return parsed;\n    blocks.push(parsed.value);\n  }\n  return ok({ sectionKey: dto.sectionKey, title: dto.title, required: dto.required, locked: dto.locked ?? false, blocks });\n}\n\nfunction parsePlaceholderDef(dto: PlaceholderDefDto): Result<string, PlaceholderDef> {\n  if (typeof dto.key !== 'string' || typeof dto.label !== 'string' || typeof dto.autoResolvable !== 'boolean') {\n    return err('placeholder: bad shape');\n  }\n  return ok({\n    key: dto.key,\n    label: dto.label,\n    autoResolvable: dto.autoResolvable,\n    ...(dto.fillable != null ? { fillable: dto.fillable } : {}),\n    ...(dto.deprecated != null ? { deprecated: dto.deprecated } : {}),\n  });\n}\n\nexport function parseStatus(dto: BriefStatusDto | undefined): Result<string, BriefStatus> {\n  switch (dto?.tag) {\n    case 'draft':\n      return ok({ tag: 'draft' });\n    case 'submitted':\n      if (typeof dto.submittedBy !== 'string' || typeof dto.submittedAt !== 'string') return err('status: bad submitted');\n      return ok({ tag: 'submitted', submittedBy: dto.submittedBy, submittedAt: dto.submittedAt });\n    case 'approved':\n      if (typeof dto.approvedBy !== 'string' || typeof dto.approvedAt !== 'string') return err('status: bad approved');\n      return ok({ tag: 'approved', approvedBy: dto.approvedBy, approvedAt: dto.approvedAt });\n    case 'rejected':\n      if (typeof dto.rejectedBy !== 'string' || typeof dto.rejectedAt !== 'string' || typeof dto.comments !== 'string') return err('status: bad rejected');\n      return ok({ tag: 'rejected', rejectedBy: dto.rejectedBy, rejectedAt: dto.rejectedAt, comments: dto.comments });\n    case 'sent':\n      if (typeof dto.sentAt !== 'string') return err('status: bad sent');\n      return ok({ tag: 'sent', sentAt: dto.sentAt });\n    default:\n      return err(`status: unknown tag ${dto?.tag}`);\n  }\n}\n\nfunction parsePassage(dto: LibraryPassageDto): Result<string, LibraryPassage> {\n  if (typeof dto.passageId !== 'string' || (dto.scope !== 'global' && dto.scope !== 'beroep')) return err('passage: bad shape');\n  if (typeof dto.sectionKey !== 'string' || typeof dto.label !== 'string' || typeof dto.version !== 'number') return err('passage: bad shape');\n  const content = parseBlockContent(dto.content);\n  if (!content.ok) return content;\n  return ok({\n    passageId: dto.passageId,\n    scope: dto.scope as PassageScope,\n    sectionKey: dto.sectionKey,\n    label: dto.label,\n    content: content.value,\n    version: dto.version,\n    ...(dto.beroep != null ? { beroep: dto.beroep } : {}),\n  });\n}\n\nexport function parseBrief(dto: BriefDto): Result<string, Brief> {\n  if (typeof dto.briefId !== 'string' || typeof dto.drafterId !== 'string' || typeof dto.beroep !== 'string' || typeof dto.templateId !== 'string') {\n    return err('brief: missing ids');\n  }\n  const status = parseStatus(dto.status);\n  if (!status.ok) return status;\n\n  const placeholders: PlaceholderDef[] = [];\n  for (const p of dto.placeholders ?? []) {\n    const parsed = parsePlaceholderDef(p);\n    if (!parsed.ok) return parsed;\n    placeholders.push(parsed.value);\n  }\n  const sections: LetterSection[] = [];\n  for (const s of dto.sections ?? []) {\n    const parsed = parseSection(s);\n    if (!parsed.ok) return parsed;\n    sections.push(parsed.value);\n  }\n  return ok({\n    briefId: dto.briefId,\n    beroep: dto.beroep,\n    templateId: dto.templateId,\n    placeholders,\n    sections,\n    status: status.value,\n    drafterId: dto.drafterId,\n  });\n}\n\nexport function parseBriefView(dto: BriefViewDto): Result<string, BriefView> {\n  if (!dto.brief) return err('brief-view: missing brief');\n  const brief = parseBrief(dto.brief);\n  if (!brief.ok) return brief;\n  const availablePassages: LibraryPassage[] = [];\n  for (const p of dto.availablePassages ?? []) {\n    const parsed = parsePassage(p);\n    if (!parsed.ok) return parsed;\n    availablePassages.push(parsed.value);\n  }\n  return ok({ brief: brief.value, availablePassages });\n}\n\n// --- toDto: domain → wire, for save (collapses the union to the flat shape) ---\n\nfunction nodeToDto(n: RichTextNode): RichTextNodeDto {\n  switch (n.type) {\n    case 'text':\n      return { type: 'text', text: n.text, ...(n.marks ? { marks: [...n.marks] } : {}) };\n    case 'placeholder':\n      return { type: 'placeholder', key: n.key };\n    case 'lineBreak':\n      return { type: 'lineBreak' };\n  }\n}\n\nfunction contentToDto(content: RichTextBlock): RichTextBlockDto {\n  return { paragraphs: content.paragraphs.map((p) => ({ nodes: p.nodes.map(nodeToDto), ...(p.list ? { list: p.list } : {}) })) };\n}\n\nfunction blockToDto(b: LetterBlock): LetterBlockDto {\n  return b.type === 'passage'\n    ? { type: 'passage', blockId: b.blockId, content: contentToDto(b.content), sourcePassageId: b.sourcePassageId, sourceVersion: b.sourceVersion, edited: b.edited }\n    : { type: 'freeText', blockId: b.blockId, content: contentToDto(b.content) };\n}\n\nfunction sectionToDto(s: LetterSection): LetterSectionDto {\n  return { sectionKey: s.sectionKey, title: s.title, required: s.required, locked: s.locked, blocks: s.blocks.map(blockToDto) };\n}\n",
            "properties": [
                {
                    "name": "availablePassages",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LibraryPassage[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 30,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "brief",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Brief",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 29,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>The only place brief HTTP lives (ADR-0001 anti-corruption boundary). The wire\nuses FLAT unions (a <code>type</code>/<code>tag</code> string + nullable fields, the repo convention);\nthe <code>parse*</code> boundary narrows them into the domain&#39;s proper discriminated unions\nand rejects malformed shapes. Mutations go through <code>runSubmit</code> (ProblemDetails →\nerror string), then parse the returned brief.</p>\n",
            "rawdescription": "\n\nThe only place brief HTTP lives (ADR-0001 anti-corruption boundary). The wire\nuses FLAT unions (a `type`/`tag` string + nullable fields, the repo convention);\nthe `parse*` boundary narrows them into the domain's proper discriminated unions\nand rejects malformed shapes. Mutations go through `runSubmit` (ProblemDetails →\nerror string), then parse the returned brief.\n",
            "methods": [],
            "extends": []
        },
        {
            "name": "BriefViewDto",
            "id": "interface-BriefViewDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "availablePassages",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LibraryPassageDto[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1314
                },
                {
                    "name": "brief",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "BriefDto",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1313
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "BrpAddressDto",
            "id": "interface-BrpAddressDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "adres",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AdresDto",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1319
                },
                {
                    "name": "gevonden",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1318
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "BrpAddressDto",
            "id": "interface-BrpAddressDto-029e98a059f908b1aab86b91327ec0c2a409efb766692f042935997cd36e685859ecf375e579b912496b2dac205dfd2c751f3a301b7486f0da9cb04cda7c704f-1",
            "file": "src/app/registratie/contracts/brp-address.dto.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface BrpAddressDto {\n  gevonden: boolean;\n  adres?: { straat: string; postcode: string; woonplaats: string };\n}\n",
            "properties": [
                {
                    "name": "adres",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "literal type",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "gevonden",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 13
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>WIRE CONTRACT for the BRP address lookup (&quot;BFF-lite&quot; — one screen-shaped call).</p>\n<p>In production this is GENERATED from the OpenAPI/TypeSpec spec and served by our\nown backend, which talks to the BRP behind an adapter. The frontend never sees\nthe BRP&#39;s own wire format. See docs/architecture/0001-bff-lite-decision-dtos.md.</p>\n<p>&quot;Geen adres bekend&quot; is a first-class outcome (<code>gevonden: false</code>), not an error —\nthe wizard falls back to manual entry (PRD §7). Slice 1 ships only the happy\npath (gevonden: true).</p>\n",
            "rawdescription": "\n\nWIRE CONTRACT for the BRP address lookup (\"BFF-lite\" — one screen-shaped call).\n\nIn production this is GENERATED from the OpenAPI/TypeSpec spec and served by our\nown backend, which talks to the BRP behind an adapter. The frontend never sees\nthe BRP's own wire format. See docs/architecture/0001-bff-lite-decision-dtos.md.\n\n\"Geen adres bekend\" is a first-class outcome (`gevonden: false`), not an error —\nthe wizard falls back to manual entry (PRD §7). Slice 1 ships only the happy\npath (gevonden: true).\n",
            "methods": [],
            "extends": [],
            "isDuplicate": true,
            "duplicateId": 1,
            "duplicateName": "BrpAddressDto-1"
        },
        {
            "name": "CategoryParams",
            "id": "interface-CategoryParams-5fab28e6a8d389767caddf0e34edcd3013f54e6fdf3e82341e2ed7e9ef1035fa5a5338c98630c1de1e65329cdd6d40d726b1885c5c3ee4eff5a462ea3e81fcd7",
            "file": "src/app/shared/upload/upload.adapter.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Injectable, computed, inject, resource } from '@angular/core';\nimport {\n  ApiClient,\n  DocumentCategoryDto,\n  UploadStatusItemDto,\n} from '@shared/infrastructure/api-client';\nimport { problemDetail } from '@shared/infrastructure/api-error';\nimport { currentScenario } from '@shared/infrastructure/scenario';\nimport { environment } from '../../../environments/environment';\nimport { DocumentCategory } from './upload.machine';\n\n/** Answer-derived query params that affect which categories the server presents. */\nexport interface CategoryParams {\n  diplomaHerkomst?: string;\n  taalvaardigheid?: string;\n}\n\n/** One arrived/known status item from poll-on-return. */\nexport interface StatusItem {\n  localId: string;\n  status: string; // 'complete' | 'unknown'\n  documentId?: string;\n}\n\nexport interface XhrUploadRequest {\n  localId: string;\n  categoryId: string;\n  wizardId: string;\n  file: File;\n}\n\n/** A live upload: progress is reported via the callback; cancel aborts the XHR. */\nexport interface XhrUploadHandle {\n  done: Promise<{ documentId: string }>;\n  cancel: () => void;\n}\n\n/** Sentinel rejection so the caller can tell a user-cancel from a real failure. */\nexport const UPLOAD_ABORTED = Symbol('upload-aborted');\n\n/**\n * Infrastructure: the only place upload HTTP lives. Reads (categories, status,\n * delete) go through the NSwag client; the multipart POST is hand-written XHR\n * because the generated client is JSON-only (the endpoint is ExcludeFromDescription)\n * and we need upload-progress events + cancellation, which fetch can't give us.\n */\n@Injectable({ providedIn: 'root' })\nexport class UploadAdapter {\n  private client = inject(ApiClient);\n\n  /** Categories are server-owned; some depend on answers (e.g. registratie's diploma\n      set varies by DUO/handmatig + course language). `extra` makes the resource reactive\n      so it re-fetches when those answers change. */\n  categoriesResource(wizardId: string, extra?: () => CategoryParams) {\n    // Structural equality so we re-fetch only when a category-affecting answer changes,\n    // not on every unrelated draft edit (a computed with `equal` returns the cached\n    // reference while equal, so the resource sees no change).\n    const params = computed(\n      () => ({ wizardId, diplomaHerkomst: extra?.().diplomaHerkomst, taalvaardigheid: extra?.().taalvaardigheid }),\n      { equal: (a, b) => a.wizardId === b.wizardId && a.diplomaHerkomst === b.diplomaHerkomst && a.taalvaardigheid === b.taalvaardigheid },\n    );\n    return resource({\n      params,\n      loader: ({ params }) =>\n        this.client.categories(params.wizardId, params.diplomaHerkomst, params.taalvaardigheid).then((r) => (r.categories ?? []).map(toCategory)),\n    });\n  }\n\n  /** Poll-on-return: which client localIds have arrived at the BFF. */\n  status(localIds: string[]): Promise<StatusItem[]> {\n    if (localIds.length === 0) return Promise.resolve([]);\n    return this.client.status(localIds.join(',')).then((r) => (r.results ?? []).map(toStatusItem));\n  }\n\n  /** User delete; throws a ProblemDetails (e.g. 409 once linked) the caller maps. */\n  deleteDocument(documentId: string): Promise<void> {\n    return this.client.uploads(documentId);\n  }\n\n  /**\n   * Direct URL to the stored bytes, for a preview/download link (`<a href>`) — the\n   * server serves it inline for pdf/image, attachment otherwise. Not a fetch: the\n   * browser opens it. demo-* ids (dev simulation) have no bytes and 404 here.\n   */\n  contentUrl(documentId: string): string {\n    return `${environment.apiBaseUrl}/api/v1/uploads/${documentId}/content`;\n  }\n\n  /**\n   * Multipart upload with progress + cancel. ponytail: XHR (not fetch keepalive) —\n   * progress events need XHR; the keepalive/background gap is covered by\n   * poll-on-return (UploadShellService.pollReturning). Swap in a Service Worker\n   * transport behind UploadTransport for true background sync.\n   */\n  xhrUpload(req: XhrUploadRequest, onProgress: (pct: number) => void): XhrUploadHandle {\n    const scenario = currentScenario();\n    if (scenario === 'upload-slow' || scenario === 'upload-fail') return simulateUpload(scenario, onProgress);\n\n    const xhr = new XMLHttpRequest();\n    const form = new FormData();\n    form.append('file', req.file);\n    form.append('categoryId', req.categoryId);\n    form.append('localId', req.localId);\n    form.append('wizardId', req.wizardId);\n\n    let aborted = false;\n    const done = new Promise<{ documentId: string }>((resolve, reject) => {\n      xhr.upload.addEventListener('progress', (e) => {\n        if (e.lengthComputable) onProgress(Math.round((e.loaded / e.total) * 100));\n      });\n      xhr.addEventListener('load', () => {\n        if (xhr.status >= 200 && xhr.status < 300) {\n          try {\n            resolve({ documentId: JSON.parse(xhr.responseText).documentId });\n          } catch {\n            reject(genericError());\n          }\n        } else {\n          reject(parseError(xhr.responseText));\n        }\n      });\n      xhr.addEventListener('error', () => reject(genericError()));\n      xhr.addEventListener('abort', () => (aborted ? reject(UPLOAD_ABORTED) : reject(genericError())));\n    });\n\n    xhr.open('POST', `${environment.apiBaseUrl}/api/v1/uploads`);\n    xhr.send(form);\n    return { done, cancel: () => ((aborted = true), xhr.abort()) };\n  }\n}\n\nconst UPLOAD_FAILED = $localize`:@@upload.failed:Uploaden is niet gelukt. Probeer het opnieuw.`;\nconst genericError = (): string => UPLOAD_FAILED;\n\n/**\n * Demo-only (dev): the real XHR POST finishes instantly for metadata, so progress\n * and failure can't otherwise be shown. Drives the progress bar over ~2.5s, then\n * succeeds (`upload-slow`) or fails (`upload-fail`). ponytail: timer-based, cancel\n * via the returned handle; no network.\n */\nfunction simulateUpload(scenario: 'upload-slow' | 'upload-fail', onProgress: (pct: number) => void): XhrUploadHandle {\n  let pct = 0;\n  let cancelled = false;\n  const done = new Promise<{ documentId: string }>((resolve, reject) => {\n    const tick = () => {\n      if (cancelled) {\n        reject(UPLOAD_ABORTED);\n      } else if (pct < 100) {\n        pct += 10;\n        onProgress(Math.min(pct, 100));\n        setTimeout(tick, 250);\n      } else if (scenario === 'upload-fail') {\n        reject(UPLOAD_FAILED);\n      } else {\n        resolve({ documentId: `demo-${crypto.randomUUID()}` });\n      }\n    };\n    setTimeout(tick, 250);\n  });\n  return { done, cancel: () => void (cancelled = true) };\n}\nconst parseError = (body: string): string => {\n  try {\n    return problemDetail(JSON.parse(body), UPLOAD_FAILED);\n  } catch {\n    return genericError();\n  }\n};\n\n/** Wire DTO (all fields optional) → domain. */\nfunction toCategory(c: DocumentCategoryDto): DocumentCategory {\n  return {\n    categoryId: c.categoryId ?? '',\n    label: c.label ?? '',\n    description: c.description ?? '',\n    required: c.required ?? false,\n    acceptedTypes: c.acceptedTypes ?? [],\n    maxSizeMb: c.maxSizeMb ?? 0,\n    multiple: c.multiple ?? false,\n    allowPostDelivery: c.allowPostDelivery ?? false,\n  };\n}\n\nfunction toStatusItem(s: UploadStatusItemDto): StatusItem {\n  return { localId: s.localId ?? '', status: s.status ?? 'unknown', documentId: s.documentId ?? undefined };\n}\n",
            "properties": [
                {
                    "name": "diplomaHerkomst",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "taalvaardigheid",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 15
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>Answer-derived query params that affect which categories the server presents.</p>\n",
            "rawdescription": "\nAnswer-derived query params that affect which categories the server presents.",
            "methods": [],
            "extends": []
        },
        {
            "name": "ChangeRequestRequest",
            "id": "interface-ChangeRequestRequest-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "postcode",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1324
                },
                {
                    "name": "straat",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1323
                },
                {
                    "name": "woonplaats",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1325
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "CreateApplicationRequest",
            "id": "interface-CreateApplicationRequest-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1329
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "Crumb",
            "id": "interface-Crumb-88fb29ef3974e1a6599728a6d40b6bafed2354ec6dde840b2d2de49ba648633c1da50552c711f9fd85f8f0985e4ae96627c05ab2890bf0f4c1894ed28e0f0797",
            "file": "src/app/shared/layout/breadcrumb/breadcrumb-trail.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { BreadcrumbItem } from './breadcrumb.component';\n\n/** Route → breadcrumb label + parent. The app has a small fixed route set\n    (see app.routes.ts), so a static map is enough — no per-page wiring.\n    ponytail: static map, not a breadcrumb service; revisit if routes go dynamic. */\ninterface Crumb { label: string; parent?: string }\n\nconst ROUTES: Record<string, Crumb> = {\n  '/dashboard': { label: $localize`:@@crumb.dashboard:Mijn overzicht` },\n  '/registratie': { label: $localize`:@@crumb.registratie:Mijn gegevens`, parent: '/dashboard' },\n  '/registreren': { label: $localize`:@@crumb.registreren:Inschrijven`, parent: '/dashboard' },\n  '/herregistratie': { label: $localize`:@@crumb.herregistratie:Herregistratie`, parent: '/dashboard' },\n  '/intake': { label: $localize`:@@crumb.intake:Herregistratie-intake`, parent: '/dashboard' },\n  '/concepts': { label: $localize`:@@crumb.concepts:Functionele patronen`, parent: '/dashboard' },\n};\n\n/** Build the breadcrumb trail for a router url (query/fragment stripped).\n    Returns [] for unknown routes (e.g. /login) so the bar can hide itself. */\nexport function trailFor(url: string): BreadcrumbItem[] {\n  const path = url.split(/[?#]/)[0];\n  const trail: BreadcrumbItem[] = [];\n  let cursor: string | undefined = path;\n  while (cursor) {\n    const node: Crumb | undefined = ROUTES[cursor];\n    if (!node) break;\n    trail.unshift({ label: node.label, link: cursor });\n    cursor = node.parent;\n  }\n  // The current (last) page is not a link.\n  if (trail.length) delete trail[trail.length - 1].link;\n  return trail;\n}\n",
            "properties": [
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 6
                },
                {
                    "name": "parent",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 6
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>Route → breadcrumb label + parent. The app has a small fixed route set\n(see app.routes.ts), so a static map is enough — no per-page wiring.\nponytail: static map, not a breadcrumb service; revisit if routes go dynamic.</p>\n",
            "rawdescription": "\nRoute → breadcrumb label + parent. The app has a small fixed route set\n(see app.routes.ts), so a static map is enough — no per-page wiring.\nponytail: static map, not a breadcrumb service; revisit if routes go dynamic.",
            "methods": [],
            "extends": []
        },
        {
            "name": "DashboardView",
            "id": "interface-DashboardView-c58fb64e1122f4fd879cc04af00e47d5f21ebcd704c19b3ee6ff824dc42bc58cbaf30d615093402c466690d62d19c307b82fa5afbff32e4feeadf419e21ac189",
            "file": "src/app/registratie/infrastructure/dashboard-view.adapter.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Injectable, inject, resource } from '@angular/core';\nimport { Result, ok, err } from '@shared/kernel/fp';\nimport { DashboardViewDto, HerregistratieDecisions } from '@registratie/contracts/dashboard-view.dto';\nimport { Registration } from '@registratie/domain/registration';\nimport { Person } from '@registratie/domain/person';\nimport { BigProfile } from '@registratie/domain/big-profile';\nimport { ApiClient } from '@shared/infrastructure/api-client';\n\n/**\n * The parsed, frontend-side view: the wire DTO mapped onto our own domain model.\n * Lives HERE, not in contracts/, because it references domain types — contracts\n * stays import-free. This split is the decoupling seam (CLAUDE.md §1, ADR-0001).\n */\nexport interface DashboardView {\n  profile: BigProfile;\n  decisions: HerregistratieDecisions;\n}\n\n/**\n * Infrastructure adapter for the screen-shaped (\"BFF-lite\") dashboard endpoint.\n * ONE call returns registration + person + server-computed decisions. The data\n * comes from the .NET backend (`GET /api/dashboard-view`) via the generated typed\n * client; the decisions (e.g. herregistratie eligibility) are computed there.\n */\n@Injectable({ providedIn: 'root' })\nexport class DashboardViewAdapter {\n  private client = inject(ApiClient);\n\n  // The value is still untrusted JSON — parseDashboardView validates it at the\n  // boundary and maps DTO → domain before the app uses it.\n  //\n  // SEAM (G5): retry-with-backoff for non-mutating reads wraps the loader here —\n  // e.g. `loader: () => withBackoff(() => this.client.dashboardView())` — since the\n  // adapter is the single place HTTP lives. Reads are safe to retry; MUTATING calls\n  // (the submit-* commands) must NEVER auto-retry — and don't. Manual retry\n  // (resource.reload via <app-async>) covers the UX today, so backoff stays unbuilt.\n  dashboardViewResource() {\n    return resource({ loader: () => this.client.dashboardView() });\n  }\n}\n\n/**\n * Trust-boundary parse: validate the untrusted response shape and map the DTO\n * onto our own domain model. Hand-written on purpose — no Zod for a single\n * contract. ponytail: reach for a schema lib once the contract count grows.\n */\nexport function parseDashboardView(json: unknown): Result<string, DashboardView> {\n  if (typeof json !== 'object' || json === null) return err('dashboard-view: not an object');\n  const dto = json as Partial<DashboardViewDto>;\n\n  const reg = dto.registration;\n  if (!reg || typeof reg.bigNummer !== 'string' || !reg.status || typeof reg.status.tag !== 'string') {\n    return err('dashboard-view: missing/invalid registration');\n  }\n  const person = dto.person;\n  if (!person || !person.adres || typeof person.adres.postcode !== 'string') {\n    return err('dashboard-view: missing/invalid person');\n  }\n  const d = dto.decisions;\n  if (!d || typeof d.eligibleForHerregistratie !== 'boolean') {\n    return err('dashboard-view: missing/invalid decisions');\n  }\n\n  // Map wire → domain. The shapes are identical today, so this reads as an\n  // identity copy — but the TYPES differ (wire DTO vs domain), so the moment the\n  // wire diverges the compiler forces a real mapping here. That's the seam.\n  const registration: Registration = {\n    bigNummer: reg.bigNummer,\n    naam: reg.naam,\n    beroep: reg.beroep,\n    registratiedatum: reg.registratiedatum,\n    geboortedatum: reg.geboortedatum,\n    status: reg.status,\n  };\n  const persoon: Person = { naam: person.naam, geboortedatum: person.geboortedatum, adres: person.adres };\n\n  return ok({\n    profile: { registration, person: persoon },\n    decisions: { eligibleForHerregistratie: d.eligibleForHerregistratie, herregistratieReason: d.herregistratieReason },\n  });\n}\n",
            "properties": [
                {
                    "name": "decisions",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "HerregistratieDecisions",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 16
                },
                {
                    "name": "profile",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "BigProfile",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 15
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>The parsed, frontend-side view: the wire DTO mapped onto our own domain model.\nLives HERE, not in contracts/, because it references domain types — contracts\nstays import-free. This split is the decoupling seam (CLAUDE.md §1, ADR-0001).</p>\n",
            "rawdescription": "\n\nThe parsed, frontend-side view: the wire DTO mapped onto our own domain model.\nLives HERE, not in contracts/, because it references domain types — contracts\nstays import-free. This split is the decoupling seam (CLAUDE.md §1, ADR-0001).\n",
            "methods": [],
            "extends": []
        },
        {
            "name": "DashboardViewDto",
            "id": "interface-DashboardViewDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "decisions",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "HerregistratieDecisionsDto",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1335
                },
                {
                    "name": "person",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "PersonDto",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1334
                },
                {
                    "name": "registration",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RegistrationDto",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1333
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "DashboardViewDto",
            "id": "interface-DashboardViewDto-10d81af9017230c2e0704c882140be892d1e2a8d6343f8d169bcdb8e99516bc135a9b17faf4ea0fb5d4da561476db228b7f2dab7d27e4c262acdecbe1b7f6241-1",
            "file": "src/app/registratie/contracts/dashboard-view.dto.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export type RegistrationStatusDto =\n  | { tag: 'Geregistreerd'; herregistratieDatum: string } // ISO date\n  | { tag: 'Geschorst'; geschorstTot: string; reden: string }\n  | { tag: 'Doorgehaald'; doorgehaaldOp: string; reden: string };\n\nexport interface RegistrationDto {\n  bigNummer: string;\n  naam: string;\n  beroep: string;\n  registratiedatum: string; // ISO date\n  geboortedatum: string;\n  status: RegistrationStatusDto;\n}\n\nexport interface AdresDto {\n  straat: string;\n  postcode: string;\n  woonplaats: string;\n}\n\nexport interface PersonDto {\n  naam: string;\n  geboortedatum: string; // ISO date\n  adres: AdresDto;\n}\n\n/** Server-computed decisions. Rendered by the FE as-is (decision DTO, ADR-0001):\n    the eligibility rule lives on the backend; the optional reason lets the UI\n    explain itself without knowing the rule. */\nexport interface HerregistratieDecisions {\n  eligibleForHerregistratie: boolean;\n  herregistratieReason?: string;\n}\n\nexport interface DashboardViewDto {\n  registration: RegistrationDto;\n  person: PersonDto;\n  decisions: HerregistratieDecisions;\n}\n",
            "properties": [
                {
                    "name": "decisions",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "HerregistratieDecisions",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 58
                },
                {
                    "name": "person",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "PersonDto",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 57
                },
                {
                    "name": "registration",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RegistrationDto",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 56
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": [],
            "isDuplicate": true,
            "duplicateId": 1,
            "duplicateName": "DashboardViewDto-1"
        },
        {
            "name": "Diagnostic",
            "id": "interface-Diagnostic-7cd6b7f0437b0e74cbd408b88e6dceda3d58ed0171b5fc3baf66911b7dae607149d424cee85829f75b69eef30cea3d3978b49dd3d8ecdd5311e71533576fd713",
            "file": "src/app/brief/domain/placeholders.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { RichTextBlock } from '@shared/kernel/rich-text';\n\n/**\n * Placeholder fields and the PURE linter over them.\n *\n * `lintPlaceholders` is a total, effect-free function of (content, valid set). It\n * runs identically on the client (for live UX) and could run on the server (for\n * authority) — same rules, same config, so the two agree by construction. The FE\n * never STORES its output: diagnostics are a `computed()` over content (see\n * `brief.ts` selectors), the same \"derive, don't store\" discipline as wizard step\n * validity.\n */\n\n/** A placeholder field the template knows about. `fillable`/`deprecated` default to\n    the healthy case; the seed flips them to exercise the not-fillable/deprecated rules. */\nexport interface PlaceholderDef {\n  readonly key: string; // e.g. 'naam_zorgverlener'\n  readonly label: string; // human label for the insert menu, e.g. 'Naam zorgverlener'\n  readonly autoResolvable: boolean; // server can fill from case data (name, date, …)\n  readonly fillable?: boolean; // default true; false → not resolvable for this beroep/case type\n  readonly deprecated?: boolean; // default false; true → retired but still referenceable in old snapshots\n}\n\nexport type DiagnosticSeverity = 'error' | 'warning';\n\nexport type DiagnosticCode =\n  | 'malformed' // raw braces in a text node (a paste that should have been a chip)\n  | 'unknown-placeholder' // well-formed key not in the valid set\n  | 'not-fillable' // key exists but isn't resolvable for this case type / beroep\n  | 'deprecated' // key was valid once but the template no longer offers it\n  | 'unresolved-at-send'; // manual (non-auto-resolvable) placeholder still to be filled\n\nexport interface DiagnosticLocation {\n  readonly blockId: string;\n  readonly paragraphIndex: number;\n  readonly nodeIndex: number;\n}\n\nexport interface Diagnostic {\n  readonly severity: DiagnosticSeverity;\n  readonly code: DiagnosticCode;\n  readonly placeholderKey?: string;\n  readonly location: DiagnosticLocation;\n  readonly message: string; // human-readable, Dutch\n}\n\n/** `error` blocks save (author time) and send (send time); `warning` is surfaced but allowed. */\nexport function severityOf(code: DiagnosticCode): DiagnosticSeverity {\n  switch (code) {\n    case 'malformed':\n    case 'unknown-placeholder':\n    case 'not-fillable':\n      return 'error';\n    case 'deprecated':\n    case 'unresolved-at-send':\n      return 'warning';\n  }\n}\n\n// Raw `{{` or `}}` in text — the only way a malformed placeholder can exist, since\n// menu insertion always produces a proper placeholder NODE. Paste safety net.\nconst RAW_BRACES = /\\{\\{|\\}\\}/;\n\nfunction messageFor(code: DiagnosticCode, key?: string): string {\n  switch (code) {\n    case 'malformed':\n      return $localize`:@@brief.lint.malformed:Deze tekst bevat losse accolades ({{ of }}). Voeg een veld toe via het menu in plaats van het te typen.`;\n    case 'unknown-placeholder':\n      return $localize`:@@brief.lint.unknown:Onbekend veld “${key}:key:”. Dit veld hoort niet bij dit sjabloon.`;\n    case 'not-fillable':\n      return $localize`:@@brief.lint.notFillable:Veld “${key}:key:” kan niet worden ingevuld voor dit beroep.`;\n    case 'deprecated':\n      return $localize`:@@brief.lint.deprecated:Veld “${key}:key:” is verouderd en wordt niet meer aangeboden.`;\n    case 'unresolved-at-send':\n      return $localize`:@@brief.lint.unresolved:Veld “${key}:key:” wordt handmatig ingevuld en is nog leeg.`;\n  }\n}\n\nfunction diag(code: DiagnosticCode, location: DiagnosticLocation, key?: string): Diagnostic {\n  return { severity: severityOf(code), code, placeholderKey: key, location, message: messageFor(code, key) };\n}\n\n/**\n * Lint one block against the template's placeholder set. Pure: given the same\n * content + valid set + blockId it always returns the same diagnostics, in\n * document order. One diagnostic per node at most (most-severe wins).\n */\nexport function lintPlaceholders(\n  content: RichTextBlock,\n  valid: readonly PlaceholderDef[],\n  blockId: string,\n): Diagnostic[] {\n  const byKey = new Map(valid.map((p) => [p.key, p]));\n  const out: Diagnostic[] = [];\n\n  content.paragraphs.forEach((p, paragraphIndex) => {\n    p.nodes.forEach((n, nodeIndex) => {\n      const location: DiagnosticLocation = { blockId, paragraphIndex, nodeIndex };\n      if (n.type === 'text') {\n        if (RAW_BRACES.test(n.text)) out.push(diag('malformed', location));\n        return;\n      }\n      if (n.type !== 'placeholder') return; // lineBreak — nothing to check\n\n      const def = byKey.get(n.key);\n      if (!def) out.push(diag('unknown-placeholder', location, n.key));\n      else if (def.fillable === false) out.push(diag('not-fillable', location, n.key));\n      else if (def.deprecated) out.push(diag('deprecated', location, n.key));\n      else if (!def.autoResolvable) out.push(diag('unresolved-at-send', location, n.key));\n      // auto-resolvable & fillable & not deprecated → clean (filled by the server at send)\n    });\n  });\n\n  return out;\n}\n",
            "properties": [
                {
                    "name": "code",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DiagnosticCode",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 41,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "location",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DiagnosticLocation",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 43,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "message",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 44,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "placeholderKey",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 42,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "severity",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DiagnosticSeverity",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 40,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "DiagnosticLocation",
            "id": "interface-DiagnosticLocation-7cd6b7f0437b0e74cbd408b88e6dceda3d58ed0171b5fc3baf66911b7dae607149d424cee85829f75b69eef30cea3d3978b49dd3d8ecdd5311e71533576fd713",
            "file": "src/app/brief/domain/placeholders.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { RichTextBlock } from '@shared/kernel/rich-text';\n\n/**\n * Placeholder fields and the PURE linter over them.\n *\n * `lintPlaceholders` is a total, effect-free function of (content, valid set). It\n * runs identically on the client (for live UX) and could run on the server (for\n * authority) — same rules, same config, so the two agree by construction. The FE\n * never STORES its output: diagnostics are a `computed()` over content (see\n * `brief.ts` selectors), the same \"derive, don't store\" discipline as wizard step\n * validity.\n */\n\n/** A placeholder field the template knows about. `fillable`/`deprecated` default to\n    the healthy case; the seed flips them to exercise the not-fillable/deprecated rules. */\nexport interface PlaceholderDef {\n  readonly key: string; // e.g. 'naam_zorgverlener'\n  readonly label: string; // human label for the insert menu, e.g. 'Naam zorgverlener'\n  readonly autoResolvable: boolean; // server can fill from case data (name, date, …)\n  readonly fillable?: boolean; // default true; false → not resolvable for this beroep/case type\n  readonly deprecated?: boolean; // default false; true → retired but still referenceable in old snapshots\n}\n\nexport type DiagnosticSeverity = 'error' | 'warning';\n\nexport type DiagnosticCode =\n  | 'malformed' // raw braces in a text node (a paste that should have been a chip)\n  | 'unknown-placeholder' // well-formed key not in the valid set\n  | 'not-fillable' // key exists but isn't resolvable for this case type / beroep\n  | 'deprecated' // key was valid once but the template no longer offers it\n  | 'unresolved-at-send'; // manual (non-auto-resolvable) placeholder still to be filled\n\nexport interface DiagnosticLocation {\n  readonly blockId: string;\n  readonly paragraphIndex: number;\n  readonly nodeIndex: number;\n}\n\nexport interface Diagnostic {\n  readonly severity: DiagnosticSeverity;\n  readonly code: DiagnosticCode;\n  readonly placeholderKey?: string;\n  readonly location: DiagnosticLocation;\n  readonly message: string; // human-readable, Dutch\n}\n\n/** `error` blocks save (author time) and send (send time); `warning` is surfaced but allowed. */\nexport function severityOf(code: DiagnosticCode): DiagnosticSeverity {\n  switch (code) {\n    case 'malformed':\n    case 'unknown-placeholder':\n    case 'not-fillable':\n      return 'error';\n    case 'deprecated':\n    case 'unresolved-at-send':\n      return 'warning';\n  }\n}\n\n// Raw `{{` or `}}` in text — the only way a malformed placeholder can exist, since\n// menu insertion always produces a proper placeholder NODE. Paste safety net.\nconst RAW_BRACES = /\\{\\{|\\}\\}/;\n\nfunction messageFor(code: DiagnosticCode, key?: string): string {\n  switch (code) {\n    case 'malformed':\n      return $localize`:@@brief.lint.malformed:Deze tekst bevat losse accolades ({{ of }}). Voeg een veld toe via het menu in plaats van het te typen.`;\n    case 'unknown-placeholder':\n      return $localize`:@@brief.lint.unknown:Onbekend veld “${key}:key:”. Dit veld hoort niet bij dit sjabloon.`;\n    case 'not-fillable':\n      return $localize`:@@brief.lint.notFillable:Veld “${key}:key:” kan niet worden ingevuld voor dit beroep.`;\n    case 'deprecated':\n      return $localize`:@@brief.lint.deprecated:Veld “${key}:key:” is verouderd en wordt niet meer aangeboden.`;\n    case 'unresolved-at-send':\n      return $localize`:@@brief.lint.unresolved:Veld “${key}:key:” wordt handmatig ingevuld en is nog leeg.`;\n  }\n}\n\nfunction diag(code: DiagnosticCode, location: DiagnosticLocation, key?: string): Diagnostic {\n  return { severity: severityOf(code), code, placeholderKey: key, location, message: messageFor(code, key) };\n}\n\n/**\n * Lint one block against the template's placeholder set. Pure: given the same\n * content + valid set + blockId it always returns the same diagnostics, in\n * document order. One diagnostic per node at most (most-severe wins).\n */\nexport function lintPlaceholders(\n  content: RichTextBlock,\n  valid: readonly PlaceholderDef[],\n  blockId: string,\n): Diagnostic[] {\n  const byKey = new Map(valid.map((p) => [p.key, p]));\n  const out: Diagnostic[] = [];\n\n  content.paragraphs.forEach((p, paragraphIndex) => {\n    p.nodes.forEach((n, nodeIndex) => {\n      const location: DiagnosticLocation = { blockId, paragraphIndex, nodeIndex };\n      if (n.type === 'text') {\n        if (RAW_BRACES.test(n.text)) out.push(diag('malformed', location));\n        return;\n      }\n      if (n.type !== 'placeholder') return; // lineBreak — nothing to check\n\n      const def = byKey.get(n.key);\n      if (!def) out.push(diag('unknown-placeholder', location, n.key));\n      else if (def.fillable === false) out.push(diag('not-fillable', location, n.key));\n      else if (def.deprecated) out.push(diag('deprecated', location, n.key));\n      else if (!def.autoResolvable) out.push(diag('unresolved-at-send', location, n.key));\n      // auto-resolvable & fillable & not deprecated → clean (filled by the server at send)\n    });\n  });\n\n  return out;\n}\n",
            "properties": [
                {
                    "name": "blockId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 34,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "nodeIndex",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 36,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "paragraphIndex",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 35,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "DocumentCategory",
            "id": "interface-DocumentCategory-a9d98fc612c255dd91f2cd2e1dfab2fbff1c2361f950c1fbd696c7075a6424d5bebf88230c1c3c0f9e463fada8809608c0e890549e98b7dd3e745b512ebeee6f",
            "file": "src/app/shared/upload/upload.machine.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { assertNever } from '@shared/kernel/fp';\n\n/**\n * Pure upload domain (no Angular). Reusable across wizards: the host wizard folds\n * `UploadState` into its Model and delegates upload `Msg`s to `reduceUpload`.\n * Illegal states are unrepresentable by construction; the few transitions a union\n * can't express (channel↔upload exclusivity, single-file categories) are enforced\n * here in the reducer. Effects live in the shell (upload-shell.service.ts).\n */\n\nexport type UploadStatus =\n  | { type: 'idle' }\n  | { type: 'queued' }\n  | { type: 'uploading'; progressPct: number }\n  | { type: 'complete'; documentId: string }\n  | { type: 'failed'; reason: string }\n  | { type: 'deleting'; documentId: string } // carries the id so a failed delete can revert\n  | { type: 'deleted' };\n\nexport interface Upload {\n  localId: string; // client-generated UUID; the sync tag / status key\n  categoryId: string;\n  fileName: string;\n  fileSizeMb: number;\n  status: UploadStatus;\n  backgroundSync: boolean;\n}\n\nexport type DeliveryChannel = 'digital' | 'post';\n\nexport interface DocumentCategory {\n  categoryId: string;\n  label: string;\n  description: string;\n  required: boolean;\n  acceptedTypes: string[];\n  maxSizeMb: number;\n  multiple: boolean;\n  allowPostDelivery: boolean;\n}\n\nexport interface UploadState {\n  categories: DocumentCategory[];\n  uploads: Upload[];\n  deliveryChannel: Record<string, DeliveryChannel>; // categoryId → channel; default 'digital'\n  rejections: Record<string, string>; // categoryId → client-side validation message (transient)\n  backgroundSyncAvailable: boolean;\n  categoriesError?: string;\n}\n\nexport const initialUpload: UploadState = {\n  categories: [],\n  uploads: [],\n  deliveryChannel: {},\n  rejections: {},\n  backgroundSyncAvailable: false,\n};\n\nexport type UploadMsg =\n  | { type: 'CategoriesLoaded'; categories: DocumentCategory[] }\n  | { type: 'CategoriesLoadFailed'; reason: string }\n  | { type: 'BackgroundSyncAvailability'; available: boolean }\n  | { type: 'FileSelected'; categoryId: string; localId: string; fileName: string; fileSizeMb: number }\n  | { type: 'FileRejected'; categoryId: string; reason: 'type' | 'size' | 'multiple' }\n  | { type: 'UploadQueued'; localId: string; backgroundSync: boolean }\n  | { type: 'UploadProgress'; localId: string; progressPct: number }\n  | { type: 'UploadComplete'; localId: string; documentId: string }\n  | { type: 'UploadFailed'; localId: string; reason: string }\n  | { type: 'UploadRetried'; localId: string }\n  | { type: 'UploadRemoved'; localId: string }\n  | { type: 'UploadDeleteRequested'; localId: string; documentId: string }\n  | { type: 'UploadDeleting'; localId: string }\n  | { type: 'UploadDeleteComplete'; localId: string }\n  | { type: 'UploadDeleteFailed'; localId: string; reason: string }\n  | { type: 'DeliveryChannelChanged'; categoryId: string; channel: DeliveryChannel }\n  | {\n      type: 'BackgroundUploadsReturned';\n      results: Array<{ localId: string } & ({ success: true; documentId: string } | { success: false; reason: string })>;\n    };\n\nconst REJECTION_MESSAGES: Record<'type' | 'size' | 'multiple', string> = {\n  type: $localize`:@@upload.reject.type:Dit bestandstype is niet toegestaan voor deze categorie.`,\n  size: $localize`:@@upload.reject.size:Dit bestand is te groot.`,\n  multiple: $localize`:@@upload.reject.multiple:U kunt voor deze categorie maar één bestand uploaden.`,\n};\n\nconst ACTIVE: ReadonlyArray<UploadStatus['type']> = ['queued', 'uploading', 'complete'];\n\n/** A required category is satisfied by an initiated upload OR a post-delivery choice. */\nexport function categorySatisfied(s: UploadState, categoryId: string): boolean {\n  if (s.deliveryChannel[categoryId] === 'post') return true;\n  return s.uploads.some((u) => u.categoryId === categoryId && ACTIVE.includes(u.status.type));\n}\n\nexport function requiredCategoriesSatisfied(s: UploadState): boolean {\n  return s.categories.filter((c) => c.required).every((c) => categorySatisfied(s, c.categoryId));\n}\n\n/**\n * FE format-validation (never authority — the server re-validates). Returns the\n * rejection reason for one file, or null if it passes the category's type/size.\n */\nexport function rejectReason(cat: DocumentCategory, file: { type: string; sizeMb: number }): 'type' | 'size' | null {\n  if (cat.acceptedTypes.length > 0 && !cat.acceptedTypes.includes(file.type)) return 'type';\n  if (cat.maxSizeMb > 0 && file.sizeMb > cat.maxSizeMb) return 'size';\n  return null;\n}\n\n/** Map one upload's status, leaving the rest of the list untouched. */\nfunction mapUpload(s: UploadState, localId: string, f: (u: Upload) => Upload): UploadState {\n  return { ...s, uploads: s.uploads.map((u) => (u.localId === localId ? f(u) : u)) };\n}\n\nconst find = (s: UploadState, localId: string) => s.uploads.find((u) => u.localId === localId);\nconst categoryOf = (s: UploadState, categoryId: string) => s.categories.find((c) => c.categoryId === categoryId);\n\nexport function reduceUpload(s: UploadState, m: UploadMsg): UploadState {\n  switch (m.type) {\n    case 'CategoriesLoaded': {\n      // Categories can change with the answers (e.g. the diploma upload disappears once\n      // DUO is chosen). Drop uploads + channel choices for categories no longer present.\n      const ids = new Set(m.categories.map((c) => c.categoryId));\n      const deliveryChannel: Record<string, DeliveryChannel> = {};\n      for (const c of m.categories) deliveryChannel[c.categoryId] = s.deliveryChannel[c.categoryId] ?? 'digital';\n      const uploads = s.uploads.filter((u) => ids.has(u.categoryId));\n      return { ...s, categories: m.categories, uploads, deliveryChannel, categoriesError: undefined };\n    }\n    case 'CategoriesLoadFailed':\n      return { ...s, categoriesError: m.reason };\n    case 'BackgroundSyncAvailability':\n      return { ...s, backgroundSyncAvailable: m.available };\n\n    case 'FileSelected': {\n      // Reject at dispatch: unknown category, or a category set to post-delivery.\n      if (!categoryOf(s, m.categoryId) || s.deliveryChannel[m.categoryId] === 'post') return s;\n      const cat = categoryOf(s, m.categoryId)!;\n      // Single-file categories: a new selection replaces any existing upload.\n      const uploads = cat.multiple ? s.uploads : s.uploads.filter((u) => u.categoryId !== m.categoryId);\n      const next: Upload = {\n        localId: m.localId,\n        categoryId: m.categoryId,\n        fileName: m.fileName,\n        fileSizeMb: m.fileSizeMb,\n        status: { type: 'queued' },\n        backgroundSync: false,\n      };\n      const { [m.categoryId]: _cleared, ...rejections } = s.rejections;\n      return { ...s, uploads: [...uploads, next], rejections };\n    }\n    case 'FileRejected':\n      return { ...s, rejections: { ...s.rejections, [m.categoryId]: REJECTION_MESSAGES[m.reason] } };\n\n    case 'UploadQueued':\n      return mapUpload(s, m.localId, (u) => ({ ...u, status: { type: 'queued' }, backgroundSync: m.backgroundSync }));\n    case 'UploadProgress':\n      return mapUpload(s, m.localId, (u) => ({ ...u, status: { type: 'uploading', progressPct: m.progressPct } }));\n    case 'UploadComplete':\n      return mapUpload(s, m.localId, (u) => ({ ...u, status: { type: 'complete', documentId: m.documentId } }));\n    case 'UploadFailed':\n      return mapUpload(s, m.localId, (u) => ({ ...u, status: { type: 'failed', reason: m.reason } }));\n    case 'UploadRetried':\n      return mapUpload(s, m.localId, (u) => ({ ...u, status: { type: 'queued' } }));\n\n    case 'UploadRemoved':\n      return { ...s, uploads: s.uploads.filter((u) => u.localId !== m.localId) };\n\n    case 'UploadDeleteRequested':\n    case 'UploadDeleting':\n      // Both mark the in-flight delete; keep the documentId so a failure can revert.\n      return mapUpload(s, m.localId, (u) => {\n        const documentId = u.status.type === 'complete' ? u.status.documentId\n          : u.status.type === 'deleting' ? u.status.documentId : '';\n        return { ...u, status: { type: 'deleting', documentId } };\n      });\n    case 'UploadDeleteComplete':\n      return { ...s, uploads: s.uploads.filter((u) => u.localId !== m.localId) };\n    case 'UploadDeleteFailed':\n      return mapUpload(s, m.localId, (u) =>\n        u.status.type === 'deleting' ? { ...u, status: { type: 'complete', documentId: u.status.documentId } } : u);\n\n    case 'DeliveryChannelChanged': {\n      const cat = categoryOf(s, m.categoryId);\n      // Reject post for a category that doesn't permit it.\n      if (m.channel === 'post' && (!cat || !cat.allowPostDelivery)) return s;\n      const deliveryChannel = { ...s.deliveryChannel, [m.categoryId]: m.channel };\n      // Switching to post removes that category's uploads; switching to digital starts clean.\n      const uploads = s.uploads.filter((u) => u.categoryId !== m.categoryId);\n      return { ...s, deliveryChannel, uploads };\n    }\n\n    case 'BackgroundUploadsReturned': {\n      let next = s;\n      for (const r of m.results) {\n        next = mapUpload(next, r.localId, (u) => ({\n          ...u,\n          status: r.success ? { type: 'complete', documentId: r.documentId } : { type: 'failed', reason: r.reason },\n        }));\n      }\n      return next;\n    }\n\n    default:\n      return assertNever(m);\n  }\n}\n\n/** The submit payload fragment: digital docs carry their documentId, post categories the channel. */\nexport function deliveryRefs(s: UploadState): Array<{ categoryId: string; channel: DeliveryChannel; documentId?: string }> {\n  const refs: Array<{ categoryId: string; channel: DeliveryChannel; documentId?: string }> = [];\n  for (const c of s.categories) {\n    if (s.deliveryChannel[c.categoryId] === 'post') {\n      refs.push({ categoryId: c.categoryId, channel: 'post' });\n    } else {\n      for (const u of s.uploads) {\n        if (u.categoryId === c.categoryId && u.status.type === 'complete') {\n          refs.push({ categoryId: c.categoryId, channel: 'digital', documentId: u.status.documentId });\n        }\n      }\n    }\n  }\n  return refs;\n}\n\n/** Used by the shell to find what to poll on return: still-in-flight uploads. */\nexport const inFlight = (s: UploadState): Upload[] =>\n  s.uploads.filter((u) => u.status.type === 'queued' || u.status.type === 'uploading');\n",
            "properties": [
                {
                    "name": "acceptedTypes",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 36
                },
                {
                    "name": "allowPostDelivery",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 39
                },
                {
                    "name": "categoryId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 32
                },
                {
                    "name": "description",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 34
                },
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 33
                },
                {
                    "name": "maxSizeMb",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 37
                },
                {
                    "name": "multiple",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 38
                },
                {
                    "name": "required",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 35
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "DocumentCategoryDto",
            "id": "interface-DocumentCategoryDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "acceptedTypes",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1343
                },
                {
                    "name": "allowPostDelivery",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1346
                },
                {
                    "name": "categoryId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1339
                },
                {
                    "name": "description",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1341
                },
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1340
                },
                {
                    "name": "maxSizeMb",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1344
                },
                {
                    "name": "multiple",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1345
                },
                {
                    "name": "required",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1342
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "DocumentRefDto",
            "id": "interface-DocumentRefDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "categoryId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1350
                },
                {
                    "name": "channel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1351
                },
                {
                    "name": "documentId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1352
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "Draft",
            "id": "interface-Draft-f2c910e7845c4a1e95cc75170624db8664de0937455edc1bf8423b6389c310b7ef9ea149dc07ea49f0a4ecad039dbaf09b226864660b29dce075e717125dab0d",
            "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Result, assertNever } from '@shared/kernel/fp';\nimport { Uren, parseUren } from '@registratie/domain/value-objects/uren';\nimport {\n  UploadState,\n  UploadMsg,\n  initialUpload,\n  reduceUpload,\n  requiredCategoriesSatisfied,\n  deliveryRefs,\n} from '@shared/upload/upload.machine';\n\n/** What the user is typing (raw, possibly invalid). */\nexport interface Draft {\n  uren: string;\n  jaren: string;\n  punten: string;\n}\n\nexport type StepErrors = Partial<Record<keyof Draft | 'documenten', string>>;\n\n/** What we have AFTER parsing — branded/typed, guaranteed valid. */\nexport interface Valid {\n  uren: Uren;\n  jaren: number;\n  punten: number;\n  documents: Array<{ categoryId: string; channel: 'digital' | 'post'; documentId?: string }>;\n}\n\n/**\n * The whole wizard as one tagged union. `step` and `errors` exist ONLY while\n * Editing; Submitting/Submitted/Failed carry a `Valid` payload and nothing else.\n * So \"submitting while a field is invalid\" or \"showing the success screen with\n * errors set\" are unrepresentable — the bug class is gone by construction.\n */\nexport type WizardState =\n  | { tag: 'Editing'; step: 1 | 2 | 3; draft: Draft; errors: StepErrors; upload: UploadState }\n  | { tag: 'Submitting'; data: Valid }\n  | { tag: 'Submitted'; data: Valid }\n  | { tag: 'Failed'; data: Valid; error: string };\n\nexport const initial: WizardState = { tag: 'Editing', step: 1, draft: { uren: '', jaren: '', punten: '' }, errors: {}, upload: initialUpload };\n\n/** Has the user meaningfully started, so it's worth persisting as a Concept? */\nexport function hasProgress(s: Extract<WizardState, { tag: 'Editing' }>): boolean {\n  return s.step > 1 || !!s.draft.uren || !!s.draft.jaren || !!s.draft.punten || deliveryRefs(s.upload).some((r) => r.channel === 'digital' && !!r.documentId);\n}\n\n/** Parse every field; on success hand back a Valid, else the per-field errors. */\nfunction validate(draft: Draft, upload: UploadState): Result<StepErrors, Valid> {\n  const uren = parseUren(draft.uren);\n  const jaren = parseUren(draft.jaren);\n  const punten = parseUren(draft.punten);\n  const errors: StepErrors = {};\n  if (!uren.ok) errors.uren = uren.error;\n  if (!jaren.ok) errors.jaren = jaren.error;\n  if (!punten.ok) errors.punten = punten.error;\n  if (!requiredCategoriesSatisfied(upload)) {\n    errors.documenten = $localize`:@@validation.documenten:Lever de verplichte documenten aan (upload of kies \"per post nasturen\").`;\n  }\n  if (uren.ok && jaren.ok && punten.ok && !errors.documenten) {\n    return { ok: true, value: { uren: uren.value, jaren: jaren.value, punten: punten.value, documents: deliveryRefs(upload) } };\n  }\n  return { ok: false, error: errors };\n}\n\n/** Advance one step, gating on that step's fields. Illegal elsewhere = no-op. */\nexport function next(s: WizardState): WizardState {\n  if (s.tag !== 'Editing') return s;\n  const errors: StepErrors = {};\n  if (s.step === 1) {\n    const uren = parseUren(s.draft.uren);\n    const jaren = parseUren(s.draft.jaren);\n    if (!uren.ok) errors.uren = uren.error;\n    if (!jaren.ok) errors.jaren = jaren.error;\n    return Object.keys(errors).length === 0 ? { ...s, step: 2, errors: {} } : { ...s, errors };\n  }\n  if (s.step === 2) {\n    const punten = parseUren(s.draft.punten);\n    if (!punten.ok) errors.punten = punten.error;\n    return punten.ok ? { ...s, step: 3, errors: {} } : { ...s, errors };\n  }\n  return s;\n}\n\nexport function back(s: WizardState): WizardState {\n  if (s.tag !== 'Editing' || s.step === 1) return s;\n  return { ...s, step: (s.step - 1) as 1 | 2, errors: {} };\n}\n\n/** Jump back to an earlier step to correct data (controle → step N). Forward\n    jumps are not allowed (would skip validation). */\nexport function gaNaarStap(s: WizardState, step: 1 | 2 | 3): WizardState {\n  if (s.tag !== 'Editing' || step >= s.step) return s;\n  return { ...s, step, errors: {} };\n}\n\n/** Step 3 submit: parse everything + require documents; Submitting only with Valid. */\nexport function submit(s: WizardState): WizardState {\n  if (s.tag !== 'Editing' || s.step !== 3) return s;\n  const result = validate(s.draft, s.upload);\n  return result.ok ? { tag: 'Submitting', data: result.value } : { ...s, errors: result.error };\n}\n\n/** Route an upload sub-message through the pure upload reducer (Editing only). */\nexport function upload(s: WizardState, msg: UploadMsg): WizardState {\n  if (s.tag !== 'Editing') return s;\n  return { ...s, upload: reduceUpload(s.upload, msg) };\n}\n\n/** Resolve the async submit. Only meaningful while Submitting. */\nexport function resolve(s: WizardState, r: Result<string, void>): WizardState {\n  if (s.tag !== 'Submitting') return s;\n  return r.ok ? { tag: 'Submitted', data: s.data } : { tag: 'Failed', data: s.data, error: r.error };\n}\n\n/** Update one draft field while editing; ignored in any other state. */\nexport function setField(s: WizardState, key: keyof Draft, value: string): WizardState {\n  if (s.tag !== 'Editing') return s;\n  return { ...s, draft: { ...s.draft, [key]: value } };\n}\n\n/**\n * Every event that can happen to the wizard, as one message type. The component\n * sends a WizardMsg; `reduce` decides the next state. This is the Elm\n * Model+Msg+update pattern: ONE pure function describes all state changes.\n */\nexport type WizardMsg =\n  | { tag: 'SetField'; key: keyof Draft; value: string }\n  | { tag: 'Next' }\n  | { tag: 'Back' }\n  | { tag: 'GaNaarStap'; step: 1 | 2 | 3 }\n  | { tag: 'Submit' }\n  | { tag: 'Retry' }\n  | { tag: 'SubmitConfirmed' }\n  | { tag: 'SubmitFailed'; error: string }\n  | { tag: 'Upload'; msg: UploadMsg }\n  | { tag: 'Seed'; state: WizardState }; // mount a specific state (stories/showcase)\n\nexport function reduce(s: WizardState, m: WizardMsg): WizardState {\n  switch (m.tag) {\n    case 'SetField':\n      return setField(s, m.key, m.value);\n    case 'Next':\n      return next(s);\n    case 'Back':\n      return back(s);\n    case 'GaNaarStap':\n      return gaNaarStap(s, m.step);\n    case 'Submit':\n      return submit(s);\n    case 'Retry':\n      return s.tag === 'Failed' ? { tag: 'Submitting', data: s.data } : s;\n    case 'SubmitConfirmed':\n      return s.tag === 'Submitting' ? { tag: 'Submitted', data: s.data } : s;\n    case 'SubmitFailed':\n      return s.tag === 'Submitting' ? { tag: 'Failed', data: s.data, error: m.error } : s;\n    case 'Upload':\n      return upload(s, m.msg);\n    case 'Seed':\n      return m.state;\n    default:\n      return assertNever(m);\n  }\n}\n",
            "properties": [
                {
                    "name": "jaren",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 15
                },
                {
                    "name": "punten",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 16
                },
                {
                    "name": "uren",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 14
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>What the user is typing (raw, possibly invalid).</p>\n",
            "rawdescription": "\nWhat the user is typing (raw, possibly invalid).",
            "methods": [],
            "extends": []
        },
        {
            "name": "Draft",
            "id": "interface-Draft-69e87ea9a6c36bd372087191f1524450d62f799934711812731fbbd8f034a9e92b7928082471c429b82990c34c47b84b6493735cb994ec6fdfb81b200e990467-1",
            "file": "src/app/registratie/domain/change-request.machine.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Result, assertNever } from '@shared/kernel/fp';\nimport { Postcode, parsePostcode } from '@registratie/domain/value-objects/postcode';\n\n/** What the user is typing (raw, possibly invalid). */\nexport interface Draft {\n  straat: string;\n  postcode: string;\n  woonplaats: string;\n}\n\n/** After parsing — postcode is the branded type, so downstream can't get a raw one. */\nexport interface Valid {\n  straat: string;\n  postcode: Postcode;\n  woonplaats: string;\n}\n\nexport type Errors = Partial<Record<keyof Draft, string>>;\n\n/**\n * The change-request (adreswijziging) form as one tagged union — the SAME idiom\n * as the wizards, just single-step. `draft`/`errors` exist only while Editing;\n * Submitting/Submitted/Failed carry the parsed `Valid`. Illegal states (submitting\n * an invalid draft, a success screen with errors) are unrepresentable.\n */\nexport type State =\n  | { tag: 'Editing'; draft: Draft; errors: Errors }\n  | { tag: 'Submitting'; data: Valid }\n  | { tag: 'Submitted'; data: Valid; referentie: string }\n  | { tag: 'Failed'; data: Valid; error: string };\n\nexport const initial: State = {\n  tag: 'Editing',\n  draft: { straat: '', postcode: '', woonplaats: '' },\n  errors: {},\n};\n\n/** Parse via the value objects; on success hand back a Valid, else per-field errors. */\nfunction validate(draft: Draft): Result<Errors, Valid> {\n  const straat = draft.straat.trim();\n  const postcode = parsePostcode(draft.postcode);\n  const errors: Errors = {};\n  if (!straat) errors.straat = $localize`:@@validation.straat:Vul straat en huisnummer in.`;\n  if (!postcode.ok) errors.postcode = postcode.error;\n  if (straat && postcode.ok) {\n    return { ok: true, value: { straat, postcode: postcode.value, woonplaats: draft.woonplaats.trim() } };\n  }\n  return { ok: false, error: errors };\n}\n\nexport type Msg =\n  | { tag: 'SetField'; key: keyof Draft; value: string }\n  | { tag: 'Submit' }\n  | { tag: 'Retry' }\n  | { tag: 'SubmitConfirmed'; referentie: string }\n  | { tag: 'SubmitFailed'; error: string }\n  | { tag: 'Reset' }\n  | { tag: 'Seed'; state: State }; // mount a specific state (stories/tests)\n\nexport function reduce(s: State, m: Msg): State {\n  switch (m.tag) {\n    case 'SetField':\n      return s.tag === 'Editing' ? { ...s, draft: { ...s.draft, [m.key]: m.value } } : s;\n    case 'Submit': {\n      if (s.tag !== 'Editing') return s;\n      const r = validate(s.draft);\n      return r.ok ? { tag: 'Submitting', data: r.value } : { ...s, errors: r.error };\n    }\n    case 'Retry':\n      return s.tag === 'Failed' ? { tag: 'Submitting', data: s.data } : s;\n    case 'SubmitConfirmed':\n      return s.tag === 'Submitting' ? { tag: 'Submitted', data: s.data, referentie: m.referentie } : s;\n    case 'SubmitFailed':\n      return s.tag === 'Submitting' ? { tag: 'Failed', data: s.data, error: m.error } : s;\n    case 'Reset':\n      return initial;\n    case 'Seed':\n      return m.state;\n    default:\n      return assertNever(m);\n  }\n}\n",
            "properties": [
                {
                    "name": "postcode",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 7
                },
                {
                    "name": "straat",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 6
                },
                {
                    "name": "woonplaats",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 8
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>What the user is typing (raw, possibly invalid).</p>\n",
            "rawdescription": "\nWhat the user is typing (raw, possibly invalid).",
            "methods": [],
            "extends": [],
            "isDuplicate": true,
            "duplicateId": 1,
            "duplicateName": "Draft-1"
        },
        {
            "name": "Draft",
            "id": "interface-Draft-b7c3c5d493aa141ca68cb964e63408db7152b07336b239864d3c430b84d8eb3e650d1a3abaf3fda253444af942c45f86138a5d8229832d49bda94eec35c33546-2",
            "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Result, ok, err, assertNever } from '@shared/kernel/fp';\nimport { Postcode, parsePostcode } from '@registratie/domain/value-objects/postcode';\nimport { Email, parseEmail } from '@registratie/domain/value-objects/email';\nimport {\n  UploadState,\n  UploadMsg,\n  DeliveryChannel,\n  initialUpload,\n  reduceUpload,\n  requiredCategoriesSatisfied,\n  deliveryRefs,\n} from '@shared/upload/upload.machine';\n\n/**\n * A FIXED 3-step registration wizard. The steps never change in number (always\n * `STEPS`): (1) adres + correspondentievoorkeur, (2) beroep o.b.v. diploma,\n * (3) controle & indienen. Follow-up questions appear *inline within a step*\n * (e.g. choosing 'email' reveals the e-mail field). \"Is this field required\n * right now\" is a pure function (`validateStep`), so it is trivial to test and\n * impossible to get out of sync with the data. Invariants live here, not in the\n * UI: the wizard reaches `Indienen` only when a complete `ValidRegistratie` parses.\n */\n\nexport type StepId = 'adres' | 'beroep' | 'controle';\n\n/** The fixed step list. Number of steps never changes; questions reveal inline. */\nexport const STEPS: StepId[] = ['adres', 'beroep', 'controle'];\n\n/** Where a piece of data came from — recorded on the aggregate (PRD §5). */\nexport type AdresHerkomst = 'brp' | 'handmatig';\nexport type DiplomaHerkomst = 'duo' | 'handmatig';\nexport type Correspondentie = 'email' | 'post';\n\n/** One record carried across every step (and persisted). All optional: the user\n    fills it in gradually. Adres fields are kept flat so one `SetField` message\n    serves them all (mirrors the intake machine). */\nexport interface Draft {\n  straat?: string;\n  postcode?: string;\n  woonplaats?: string;\n  adresHerkomst?: AdresHerkomst;\n  correspondentie?: Correspondentie;\n  email?: string;\n  diplomaId?: string;\n  diplomaHerkomst?: DiplomaHerkomst;\n  beroep?: string; // DERIVED from the chosen DUO diploma (or declared for a manual one)\n  vraagIds?: string[]; // ids of the policy questions that apply to the chosen diploma\n  antwoorden: Record<string, string>; // geldigheidsantwoorden, keyed by question id\n}\n\n/** What we have after the controle step parses — guaranteed valid/typed. */\nexport interface ValidRegistratie {\n  adres: { straat: string; postcode: Postcode; woonplaats: string };\n  adresHerkomst: AdresHerkomst;\n  correspondentie: Correspondentie;\n  email?: Email; // only when correspondentie === 'email'\n  diplomaId: string;\n  diplomaHerkomst: DiplomaHerkomst;\n  beroep: string;\n  antwoorden: Record<string, string>;\n  documents: Array<{ categoryId: string; channel: DeliveryChannel; documentId?: string }>;\n}\n\n/** Text fields settable via SetField. */\nexport type DraftField = 'straat' | 'postcode' | 'woonplaats' | 'email';\n\n/** Per-field error map. `antwoorden` holds per-policy-question errors, keyed by\n    question id (a step can show several questions). */\nexport interface Errors {\n  straat?: string;\n  postcode?: string;\n  woonplaats?: string;\n  email?: string;\n  correspondentie?: string;\n  diploma?: string;\n  documenten?: string;\n  antwoorden?: Record<string, string>;\n}\n\nexport type RegistratieState =\n  | { tag: 'Invullen'; draft: Draft; cursor: number; errors: Errors; upload: UploadState }\n  | { tag: 'Indienen'; data: ValidRegistratie }\n  | { tag: 'Ingediend'; data: ValidRegistratie; referentie: string }\n  | { tag: 'Mislukt'; data: ValidRegistratie; error: string };\n\nconst emptyDraft: Draft = { antwoorden: {} };\nexport const initial: RegistratieState = { tag: 'Invullen', draft: emptyDraft, cursor: 0, errors: {}, upload: initialUpload };\n\n/** Which step the cursor currently points at (clamped to the fixed list). */\nexport function currentStep(s: Extract<RegistratieState, { tag: 'Invullen' }>): StepId {\n  return STEPS[Math.min(s.cursor, STEPS.length - 1)];\n}\n\n/** Has the user meaningfully started, so it's worth persisting as a Concept? Excludes\n    the automatic BRP address prefill on step 0 — a bare page visit creates nothing.\n    ponytail: an address typed at step 0 without any of these signals is not yet\n    persisted (created once they advance/choose); accepted regression vs. sessionStorage. */\nexport function hasProgress(s: Extract<RegistratieState, { tag: 'Invullen' }>): boolean {\n  const d = s.draft;\n  return (\n    s.cursor > 0 ||\n    !!d.correspondentie ||\n    !!d.email ||\n    !!d.diplomaId ||\n    !!d.beroep ||\n    deliveryRefs(s.upload).some((r) => r.channel === 'digital' && !!r.documentId)\n  );\n}\n\n/** Validate every question currently visible in ONE step. Errors keyed per field. */\nfunction validateStep(step: StepId, d: Draft, upload: UploadState): Result<Errors, void> {\n  const errors: Errors = {};\n  switch (step) {\n    case 'adres': {\n      if (!d.straat || d.straat.trim() === '') errors.straat = $localize`:@@validation.straat2:Vul een straat en huisnummer in.`;\n      const pc = parsePostcode(d.postcode ?? '');\n      if (!pc.ok) errors.postcode = pc.error;\n      if (!d.woonplaats || d.woonplaats.trim() === '') errors.woonplaats = $localize`:@@validation.woonplaats:Vul een woonplaats in.`;\n      if (!d.correspondentie) errors.correspondentie = $localize`:@@validation.maakKeuze:Maak een keuze.`;\n      // E-mail is only required when 'email' is the chosen channel.\n      if (d.correspondentie === 'email') {\n        const e = parseEmail(d.email ?? '');\n        if (!e.ok) errors.email = e.error;\n      }\n      break;\n    }\n    case 'beroep': {\n      // A diploma must be chosen (or declared manually); its beroep is then known.\n      if (!d.diplomaId || !d.beroep) {\n        errors.diploma = $localize`:@@validation.diploma:Kies het diploma waarmee u zich wilt registreren, of voer het handmatig in.`;\n        break;\n      }\n      // Every policy question the chosen diploma raised must be answered. Which\n      // questions apply is server-decided (carried in `vraagIds`); we only check\n      // they're answered.\n      const open: Record<string, string> = {};\n      for (const id of d.vraagIds ?? []) {\n        if (!(d.antwoorden[id] ?? '').trim()) open[id] = $localize`:@@validation.beantwoordVraag:Beantwoord deze vraag.`;\n      }\n      if (Object.keys(open).length > 0) errors.antwoorden = open;\n      // Required documents for this wizard attach to the beroep step (inline upload).\n      if (!requiredCategoriesSatisfied(upload)) {\n        errors.documenten = $localize`:@@validation.documenten:Lever de verplichte documenten aan (upload of kies \"per post nasturen\").`;\n      }\n      break;\n    }\n    case 'controle':\n      break; // controle shows a summary; no own fields\n    default:\n      return assertNever(step);\n  }\n  return Object.keys(errors).length > 0 ? err(errors) : ok(undefined);\n}\n\n/** Parse the whole wizard into a ValidRegistratie (called on submit). */\nfunction validateAll(d: Draft, upload: UploadState): Result<Errors, ValidRegistratie> {\n  const errors: Errors = {};\n  for (const step of STEPS) {\n    const r = validateStep(step, d, upload);\n    if (!r.ok) Object.assign(errors, r.error);\n  }\n  if (Object.keys(errors).length > 0) return err(errors);\n\n  const pc = parsePostcode(d.postcode ?? '');\n  // validateStep guaranteed these parse, but keep the compiler happy.\n  if (!pc.ok || !d.diplomaId || !d.beroep || !d.correspondentie) return err(errors);\n  const email = d.correspondentie === 'email' ? parseEmail(d.email ?? '') : undefined;\n  // Keep only the answers to the questions that actually applied.\n  const vraagIds = d.vraagIds ?? [];\n  const antwoorden = Object.fromEntries(vraagIds.map((id) => [id, d.antwoorden[id] ?? '']));\n\n  return ok({\n    adres: { straat: d.straat!, postcode: pc.value, woonplaats: d.woonplaats! },\n    adresHerkomst: d.adresHerkomst ?? 'handmatig',\n    correspondentie: d.correspondentie,\n    email: email?.ok ? email.value : undefined,\n    diplomaId: d.diplomaId,\n    diplomaHerkomst: d.diplomaHerkomst ?? 'handmatig',\n    beroep: d.beroep,\n    antwoorden,\n    documents: deliveryRefs(upload),\n  });\n}\n\nexport function setField(s: RegistratieState, key: DraftField, value: string): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  const draft: Draft = { ...s.draft, [key]: value };\n  // Editing an address field means the user owns it now — not the BRP copy.\n  if (key === 'straat' || key === 'postcode' || key === 'woonplaats') draft.adresHerkomst = 'handmatig';\n  return { ...s, draft };\n}\n\nexport function setCorrespondentie(s: RegistratieState, value: Correspondentie): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, correspondentie: value } };\n}\n\n/** Prefill the address from a BRP lookup and flag its origin (PRD §7). */\nexport function prefillAdres(s: RegistratieState, straat: string, postcode: string, woonplaats: string): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, straat, postcode, woonplaats, adresHerkomst: 'brp' } };\n}\n\n/** Pick a DUO diploma; the beroep is derived from it and the applicable policy\n    questions (`vraagIds`) come with it (both server-computed, passed in). */\nexport function kiesDiploma(s: RegistratieState, diplomaId: string, beroep: string, vraagIds: string[]): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, diplomaId, beroep, vraagIds, diplomaHerkomst: 'duo' }, errors: {} };\n}\n\n/** Switch to manual diploma entry: the diploma isn't in DUO, so the MAXIMAL\n    policy-question set applies and the entry is flagged handmatig/unverified. The\n    beroep is declared separately (declareerBeroep). */\nexport function kiesHandmatig(s: RegistratieState, vraagIds: string[]): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, diplomaId: 'handmatig', beroep: undefined, vraagIds, diplomaHerkomst: 'handmatig' }, errors: {} };\n}\n\n/** Declare the beroep for a manually-entered diploma (chosen from a fixed list). */\nexport function declareerBeroep(s: RegistratieState, beroep: string): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, beroep } };\n}\n\nexport function setAntwoord(s: RegistratieState, vraagId: string, value: string): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, antwoorden: { ...s.draft.antwoorden, [vraagId]: value } } };\n}\n\nexport function next(s: RegistratieState): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  const r = validateStep(currentStep(s), s.draft, s.upload);\n  if (!r.ok) return { ...s, errors: r.error };\n  return { ...s, cursor: Math.min(s.cursor + 1, STEPS.length - 1), errors: {} };\n}\n\nexport function back(s: RegistratieState): RegistratieState {\n  if (s.tag !== 'Invullen' || s.cursor === 0) return s;\n  return { ...s, cursor: s.cursor - 1, errors: {} };\n}\n\n/** Jump back to an earlier step to correct data (controle → step N). Forward\n    jumps are not allowed (would skip validation). Preserves the draft. */\nexport function gaNaarStap(s: RegistratieState, cursor: number): RegistratieState {\n  if (s.tag !== 'Invullen' || cursor < 0 || cursor >= s.cursor) return s;\n  return { ...s, cursor, errors: {} };\n}\n\nexport function submit(s: RegistratieState): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  const r = validateAll(s.draft, s.upload);\n  return r.ok ? { tag: 'Indienen', data: r.value } : { ...s, errors: r.error };\n}\n\n/** Route an upload sub-message through the pure upload reducer (Invullen only). */\nexport function upload(s: RegistratieState, msg: UploadMsg): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, upload: reduceUpload(s.upload, msg) };\n}\n\nexport function resolve(s: RegistratieState, r: Result<string, string>): RegistratieState {\n  if (s.tag !== 'Indienen') return s;\n  return r.ok ? { tag: 'Ingediend', data: s.data, referentie: r.value } : { tag: 'Mislukt', data: s.data, error: r.error };\n}\n\nexport type RegistratieMsg =\n  | { tag: 'SetField'; key: DraftField; value: string }\n  | { tag: 'SetCorrespondentie'; value: Correspondentie }\n  | { tag: 'PrefillAdres'; straat: string; postcode: string; woonplaats: string }\n  | { tag: 'KiesDiploma'; diplomaId: string; beroep: string; vraagIds: string[] }\n  | { tag: 'KiesHandmatig'; vraagIds: string[] }\n  | { tag: 'DeclareerBeroep'; beroep: string }\n  | { tag: 'SetAntwoord'; vraagId: string; value: string }\n  | { tag: 'Next' }\n  | { tag: 'Back' }\n  | { tag: 'GaNaarStap'; cursor: number }\n  | { tag: 'Submit' }\n  | { tag: 'Retry' }\n  | { tag: 'SubmitConfirmed'; referentie: string }\n  | { tag: 'SubmitFailed'; error: string }\n  | { tag: 'Upload'; msg: UploadMsg }\n  | { tag: 'Seed'; state: RegistratieState };\n\nexport function reduce(s: RegistratieState, m: RegistratieMsg): RegistratieState {\n  switch (m.tag) {\n    case 'SetField':\n      return setField(s, m.key, m.value);\n    case 'SetCorrespondentie':\n      return setCorrespondentie(s, m.value);\n    case 'PrefillAdres':\n      return prefillAdres(s, m.straat, m.postcode, m.woonplaats);\n    case 'KiesDiploma':\n      return kiesDiploma(s, m.diplomaId, m.beroep, m.vraagIds);\n    case 'KiesHandmatig':\n      return kiesHandmatig(s, m.vraagIds);\n    case 'DeclareerBeroep':\n      return declareerBeroep(s, m.beroep);\n    case 'SetAntwoord':\n      return setAntwoord(s, m.vraagId, m.value);\n    case 'Next':\n      return next(s);\n    case 'Back':\n      return back(s);\n    case 'GaNaarStap':\n      return gaNaarStap(s, m.cursor);\n    case 'Submit':\n      return submit(s);\n    case 'Retry':\n      return s.tag === 'Mislukt' ? { tag: 'Indienen', data: s.data } : s;\n    case 'SubmitConfirmed':\n      return s.tag === 'Indienen' ? { tag: 'Ingediend', data: s.data, referentie: m.referentie } : s;\n    case 'SubmitFailed':\n      return s.tag === 'Indienen' ? { tag: 'Mislukt', data: s.data, error: m.error } : s;\n    case 'Upload':\n      return upload(s, m.msg);\n    case 'Seed':\n      return m.state;\n    default:\n      return assertNever(m);\n  }\n}\n",
            "properties": [
                {
                    "name": "adresHerkomst",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AdresHerkomst",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 41
                },
                {
                    "name": "antwoorden",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Record<string | string>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 48
                },
                {
                    "name": "beroep",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 46
                },
                {
                    "name": "correspondentie",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Correspondentie",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 42
                },
                {
                    "name": "diplomaHerkomst",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DiplomaHerkomst",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 45
                },
                {
                    "name": "diplomaId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 44
                },
                {
                    "name": "email",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 43
                },
                {
                    "name": "postcode",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 39
                },
                {
                    "name": "straat",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 38
                },
                {
                    "name": "vraagIds",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 47
                },
                {
                    "name": "woonplaats",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 40
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>One record carried across every step (and persisted). All optional: the user\nfills it in gradually. Adres fields are kept flat so one <code>SetField</code> message\nserves them all (mirrors the intake machine).</p>\n",
            "rawdescription": "\nOne record carried across every step (and persisted). All optional: the user\nfills it in gradually. Adres fields are kept flat so one `SetField` message\nserves them all (mirrors the intake machine).",
            "methods": [],
            "extends": [],
            "isDuplicate": true,
            "duplicateId": 2,
            "duplicateName": "Draft-2"
        },
        {
            "name": "DraftSnapshot",
            "id": "interface-DraftSnapshot-e575992a23399ee78afe66c219bd8a146ede9c3330705108a5ee488100dd204c54c96e1a8e354dfcd03f8f842249ad8ee59f6bd9967431b700e9050ca058b295",
            "file": "src/app/registratie/application/draft-sync.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { DestroyRef, effect, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Result } from '@shared/kernel/fp';\nimport { runSubmit, SUBMIT_FAILED } from '@shared/application/submit';\nimport type { SubmitApplicationRequest, SubmitApplicationResponse } from '@shared/infrastructure/api-client';\nimport { AanvraagType } from '@registratie/domain/aanvraag';\nimport { ApplicationsAdapter, parseApplications } from '@registratie/infrastructure/applications.adapter';\n\n/** What a wizard persists per step: the opaque machine snapshot + progress + docs. */\nexport interface DraftSnapshot {\n  draft: unknown;\n  stepIndex: number;\n  stepCount: number;\n  documentIds: string[];\n}\n\nexport interface DraftSyncDeps {\n  type: AanvraagType;\n  /** The machine snapshot while it's worth persisting; null when not (pristine/done). */\n  snapshot: () => DraftSnapshot | null;\n  /** Seed the machine from a resumed draft. Called at most once, on init, and ONLY\n      with a real draft on a still-pristine machine — see `applyResume`. */\n  onResume: (draft: unknown) => void;\n  /** Draft-sync only runs in the real app — false in Storybook/tests (explicit seed). */\n  enabled: () => boolean;\n}\n\nconst DEBOUNCE_MS = 600; // ponytail: fixed debounce; tune if the sync feels laggy/chatty.\n\n/**\n * The effectful glue that replaces per-wizard sessionStorage with a backend-owned\n * Concept (PRD 0001, phase D). Instantiated in a field initializer (like\n * `createStore`/`createUploadController`). Responsibilities:\n *\n *  - resume: a `?aanvraag=<id>` link wins; otherwise resume the ONE existing Concept of\n *    this type (at most one per type), seeding the machine from its saved draft;\n *  - create-on-first-progress: when no Concept exists, one is created lazily the first\n *    time the wizard reports a non-null snapshot, and its id is stamped into the URL;\n *  - debounced draft sync on every subsequent change.\n *\n * Inert without a Router (stories) or when `enabled()` is false — no network, no resume.\n */\nexport function createDraftSync(deps: DraftSyncDeps) {\n  const adapter = inject(ApplicationsAdapter);\n  const router = inject(Router, { optional: true });\n  const route = inject(ActivatedRoute, { optional: true });\n  const active = () => deps.enabled() && !!router && !!route;\n\n  let id: string | undefined;\n  let ensuring: Promise<string> | undefined; // in-flight create, so we never create twice\n  let timer: ReturnType<typeof setTimeout> | undefined;\n  // Resolves once resume() has decided whether a Concept of this type already exists;\n  // gates ensureId so a fast typist can't create a duplicate before that lookup lands.\n  let resumeGate: Promise<unknown> = Promise.resolve();\n\n  const ensureId = async (): Promise<string> => {\n    await resumeGate;\n    if (id) return id;\n    ensuring ??= adapter.create(deps.type).then((newId) => {\n      id = newId;\n      // Stamp the id into the URL (no navigation) so a reload resumes this Concept.\n      void router!.navigate([], { relativeTo: route!, queryParams: { aanvraag: newId }, queryParamsHandling: 'merge', replaceUrl: true });\n      return newId;\n    });\n    return ensuring;\n  };\n\n  // Apply a resumed draft only when it's safe to: a late lookup must never clobber\n  // progress the user already made while it was in flight, and \"start fresh\" needs no\n  // dispatch (the machine already starts fresh). snapshot() is non-null once the user\n  // has real progress.\n  const applyResume = (draft: unknown | null) => {\n    if (draft == null || deps.snapshot() != null) return;\n    deps.onResume(draft);\n  };\n\n  const flush = async () => {\n    const snap = deps.snapshot();\n    if (!snap) return;\n    const theId = await ensureId();\n    await adapter.syncDraft(theId, { draft: snap.draft, stepIndex: snap.stepIndex, stepCount: snap.stepCount, documentIds: snap.documentIds });\n  };\n\n  // One effect watches the snapshot; each change resets a debounce timer. The timer's\n  // callback only does network I/O (never dispatch), so it can't livelock the store.\n  effect(() => {\n    if (!active()) return;\n    const snap = deps.snapshot(); // tracked: fires on every machine change\n    if (!snap) return;\n    if (timer) clearTimeout(timer);\n    timer = setTimeout(() => void flush(), DEBOUNCE_MS);\n  });\n\n  inject(DestroyRef).onDestroy(() => timer && clearTimeout(timer));\n\n  // Attach to a specific Concept id and seed the machine from its draft. A non-Concept\n  // (submitted/gone) id is treated as fresh so it can't reopen as an editable draft.\n  const load = (linked: string): Promise<void> => {\n    id = linked;\n    return adapter\n      .detail(linked)\n      .then((dto) => {\n        if (dto.status && dto.status.tag !== 'Concept') {\n          id = undefined;\n          applyResume(null);\n          return;\n        }\n        applyResume(dto.draft ?? null);\n      })\n      .catch(() => {\n        id = undefined;\n        applyResume(null); // unknown/deleted id → start fresh\n      });\n  };\n\n  // Find the user's existing Concept of this type (at most one), if any.\n  const findConcept = async (): Promise<string | undefined> => {\n    try {\n      const parsed = parseApplications(await adapter.list());\n      return parsed.ok ? parsed.value.find((a) => a.type === deps.type && a.status.tag === 'Concept')?.id : undefined;\n    } catch {\n      return undefined;\n    }\n  };\n\n  return {\n    /** Resolve the initial state: a `?aanvraag` link wins; else resume this type's\n        existing Concept; else start fresh (a Concept is created on first progress). */\n    async resume() {\n      let release!: () => void;\n      resumeGate = new Promise<void>((r) => (release = r));\n      try {\n        if (!active()) {\n          applyResume(null);\n          return;\n        }\n        const linked = route!.snapshot.queryParamMap.get('aanvraag');\n        if (linked) {\n          await load(linked);\n          return;\n        }\n        const existing = await findConcept();\n        if (existing) {\n          await load(existing);\n          // Stamp the id into the URL so a reload resumes the same Concept.\n          void router!.navigate([], { relativeTo: route!, queryParams: { aanvraag: existing }, queryParamsHandling: 'merge', replaceUrl: true });\n          return;\n        }\n        applyResume(null);\n      } finally {\n        release();\n      }\n    },\n\n    /** Submit through the aanvraag lifecycle: ensure the Concept exists, then\n        `POST /applications/{id}/submit` (server sets autoApprovable + transitions).\n        Folded into a Result like the old submit-* commands. */\n    submit(body: SubmitApplicationRequest): Promise<Result<string, SubmitApplicationResponse>> {\n      return runSubmit(async () => adapter.submit(await ensureId(), body), SUBMIT_FAILED);\n    },\n\n    /** Restart: discard the current in-progress Concept (delete it) and detach, so a\n        fresh one is created on next progress. Keeps the one-per-type invariant. A\n        submitted id can't be deleted (409, caught) — that submission correctly remains,\n        and detaching still lets the user start a new Concept. */\n    reset() {\n      if (id) {\n        void adapter.cancel(id).catch(() => {}); // Concept → deleted; submitted → 409, kept\n        id = undefined;\n        ensuring = undefined;\n      }\n      if (active()) void router!.navigate([], { relativeTo: route!, queryParams: { aanvraag: null }, queryParamsHandling: 'merge', replaceUrl: true });\n    },\n  };\n}\n",
            "properties": [
                {
                    "name": "documentIds",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "draft",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 11
                },
                {
                    "name": "stepCount",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 13
                },
                {
                    "name": "stepIndex",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 12
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>What a wizard persists per step: the opaque machine snapshot + progress + docs.</p>\n",
            "rawdescription": "\nWhat a wizard persists per step: the opaque machine snapshot + progress + docs.",
            "methods": [],
            "extends": []
        },
        {
            "name": "DraftSyncDeps",
            "id": "interface-DraftSyncDeps-e575992a23399ee78afe66c219bd8a146ede9c3330705108a5ee488100dd204c54c96e1a8e354dfcd03f8f842249ad8ee59f6bd9967431b700e9050ca058b295",
            "file": "src/app/registratie/application/draft-sync.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { DestroyRef, effect, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Result } from '@shared/kernel/fp';\nimport { runSubmit, SUBMIT_FAILED } from '@shared/application/submit';\nimport type { SubmitApplicationRequest, SubmitApplicationResponse } from '@shared/infrastructure/api-client';\nimport { AanvraagType } from '@registratie/domain/aanvraag';\nimport { ApplicationsAdapter, parseApplications } from '@registratie/infrastructure/applications.adapter';\n\n/** What a wizard persists per step: the opaque machine snapshot + progress + docs. */\nexport interface DraftSnapshot {\n  draft: unknown;\n  stepIndex: number;\n  stepCount: number;\n  documentIds: string[];\n}\n\nexport interface DraftSyncDeps {\n  type: AanvraagType;\n  /** The machine snapshot while it's worth persisting; null when not (pristine/done). */\n  snapshot: () => DraftSnapshot | null;\n  /** Seed the machine from a resumed draft. Called at most once, on init, and ONLY\n      with a real draft on a still-pristine machine — see `applyResume`. */\n  onResume: (draft: unknown) => void;\n  /** Draft-sync only runs in the real app — false in Storybook/tests (explicit seed). */\n  enabled: () => boolean;\n}\n\nconst DEBOUNCE_MS = 600; // ponytail: fixed debounce; tune if the sync feels laggy/chatty.\n\n/**\n * The effectful glue that replaces per-wizard sessionStorage with a backend-owned\n * Concept (PRD 0001, phase D). Instantiated in a field initializer (like\n * `createStore`/`createUploadController`). Responsibilities:\n *\n *  - resume: a `?aanvraag=<id>` link wins; otherwise resume the ONE existing Concept of\n *    this type (at most one per type), seeding the machine from its saved draft;\n *  - create-on-first-progress: when no Concept exists, one is created lazily the first\n *    time the wizard reports a non-null snapshot, and its id is stamped into the URL;\n *  - debounced draft sync on every subsequent change.\n *\n * Inert without a Router (stories) or when `enabled()` is false — no network, no resume.\n */\nexport function createDraftSync(deps: DraftSyncDeps) {\n  const adapter = inject(ApplicationsAdapter);\n  const router = inject(Router, { optional: true });\n  const route = inject(ActivatedRoute, { optional: true });\n  const active = () => deps.enabled() && !!router && !!route;\n\n  let id: string | undefined;\n  let ensuring: Promise<string> | undefined; // in-flight create, so we never create twice\n  let timer: ReturnType<typeof setTimeout> | undefined;\n  // Resolves once resume() has decided whether a Concept of this type already exists;\n  // gates ensureId so a fast typist can't create a duplicate before that lookup lands.\n  let resumeGate: Promise<unknown> = Promise.resolve();\n\n  const ensureId = async (): Promise<string> => {\n    await resumeGate;\n    if (id) return id;\n    ensuring ??= adapter.create(deps.type).then((newId) => {\n      id = newId;\n      // Stamp the id into the URL (no navigation) so a reload resumes this Concept.\n      void router!.navigate([], { relativeTo: route!, queryParams: { aanvraag: newId }, queryParamsHandling: 'merge', replaceUrl: true });\n      return newId;\n    });\n    return ensuring;\n  };\n\n  // Apply a resumed draft only when it's safe to: a late lookup must never clobber\n  // progress the user already made while it was in flight, and \"start fresh\" needs no\n  // dispatch (the machine already starts fresh). snapshot() is non-null once the user\n  // has real progress.\n  const applyResume = (draft: unknown | null) => {\n    if (draft == null || deps.snapshot() != null) return;\n    deps.onResume(draft);\n  };\n\n  const flush = async () => {\n    const snap = deps.snapshot();\n    if (!snap) return;\n    const theId = await ensureId();\n    await adapter.syncDraft(theId, { draft: snap.draft, stepIndex: snap.stepIndex, stepCount: snap.stepCount, documentIds: snap.documentIds });\n  };\n\n  // One effect watches the snapshot; each change resets a debounce timer. The timer's\n  // callback only does network I/O (never dispatch), so it can't livelock the store.\n  effect(() => {\n    if (!active()) return;\n    const snap = deps.snapshot(); // tracked: fires on every machine change\n    if (!snap) return;\n    if (timer) clearTimeout(timer);\n    timer = setTimeout(() => void flush(), DEBOUNCE_MS);\n  });\n\n  inject(DestroyRef).onDestroy(() => timer && clearTimeout(timer));\n\n  // Attach to a specific Concept id and seed the machine from its draft. A non-Concept\n  // (submitted/gone) id is treated as fresh so it can't reopen as an editable draft.\n  const load = (linked: string): Promise<void> => {\n    id = linked;\n    return adapter\n      .detail(linked)\n      .then((dto) => {\n        if (dto.status && dto.status.tag !== 'Concept') {\n          id = undefined;\n          applyResume(null);\n          return;\n        }\n        applyResume(dto.draft ?? null);\n      })\n      .catch(() => {\n        id = undefined;\n        applyResume(null); // unknown/deleted id → start fresh\n      });\n  };\n\n  // Find the user's existing Concept of this type (at most one), if any.\n  const findConcept = async (): Promise<string | undefined> => {\n    try {\n      const parsed = parseApplications(await adapter.list());\n      return parsed.ok ? parsed.value.find((a) => a.type === deps.type && a.status.tag === 'Concept')?.id : undefined;\n    } catch {\n      return undefined;\n    }\n  };\n\n  return {\n    /** Resolve the initial state: a `?aanvraag` link wins; else resume this type's\n        existing Concept; else start fresh (a Concept is created on first progress). */\n    async resume() {\n      let release!: () => void;\n      resumeGate = new Promise<void>((r) => (release = r));\n      try {\n        if (!active()) {\n          applyResume(null);\n          return;\n        }\n        const linked = route!.snapshot.queryParamMap.get('aanvraag');\n        if (linked) {\n          await load(linked);\n          return;\n        }\n        const existing = await findConcept();\n        if (existing) {\n          await load(existing);\n          // Stamp the id into the URL so a reload resumes the same Concept.\n          void router!.navigate([], { relativeTo: route!, queryParams: { aanvraag: existing }, queryParamsHandling: 'merge', replaceUrl: true });\n          return;\n        }\n        applyResume(null);\n      } finally {\n        release();\n      }\n    },\n\n    /** Submit through the aanvraag lifecycle: ensure the Concept exists, then\n        `POST /applications/{id}/submit` (server sets autoApprovable + transitions).\n        Folded into a Result like the old submit-* commands. */\n    submit(body: SubmitApplicationRequest): Promise<Result<string, SubmitApplicationResponse>> {\n      return runSubmit(async () => adapter.submit(await ensureId(), body), SUBMIT_FAILED);\n    },\n\n    /** Restart: discard the current in-progress Concept (delete it) and detach, so a\n        fresh one is created on next progress. Keeps the one-per-type invariant. A\n        submitted id can't be deleted (409, caught) — that submission correctly remains,\n        and detaching still lets the user start a new Concept. */\n    reset() {\n      if (id) {\n        void adapter.cancel(id).catch(() => {}); // Concept → deleted; submitted → 409, kept\n        id = undefined;\n        ensuring = undefined;\n      }\n      if (active()) void router!.navigate([], { relativeTo: route!, queryParams: { aanvraag: null }, queryParamsHandling: 'merge', replaceUrl: true });\n    },\n  };\n}\n",
            "properties": [
                {
                    "name": "enabled",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Draft-sync only runs in the real app — false in Storybook/tests (explicit seed).</p>\n",
                    "line": 25,
                    "rawdescription": "\nDraft-sync only runs in the real app — false in Storybook/tests (explicit seed)."
                },
                {
                    "name": "onResume",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Seed the machine from a resumed draft. Called at most once, on init, and ONLY\nwith a real draft on a still-pristine machine — see <code>applyResume</code>.</p>\n",
                    "line": 23,
                    "rawdescription": "\nSeed the machine from a resumed draft. Called at most once, on init, and ONLY\nwith a real draft on a still-pristine machine — see `applyResume`."
                },
                {
                    "name": "snapshot",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The machine snapshot while it&#39;s worth persisting; null when not (pristine/done).</p>\n",
                    "line": 20,
                    "rawdescription": "\nThe machine snapshot while it's worth persisting; null when not (pristine/done)."
                },
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AanvraagType",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 18
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "DraftSyncRequest",
            "id": "interface-DraftSyncRequest-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "documentIds",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1359
                },
                {
                    "name": "draft",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1356
                },
                {
                    "name": "stepCount",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1358
                },
                {
                    "name": "stepIndex",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1357
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "DuoDiplomaDto",
            "id": "interface-DuoDiplomaDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "beroep",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1367
                },
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1363
                },
                {
                    "name": "instelling",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1365
                },
                {
                    "name": "jaar",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1366
                },
                {
                    "name": "naam",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1364
                },
                {
                    "name": "policyQuestions",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "PolicyQuestionDto[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1368
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "DuoDiplomaDto",
            "id": "interface-DuoDiplomaDto-03b724eabc3fb95affe36abb0bef921275f0c9eeefd35fab64dd906d4d76e5a38fe849098232c0aaeaf7dd32fa6c0a7b7f2a1bfbbf4c03de4a440f860b3c46e1-1",
            "file": "src/app/registratie/contracts/duo-diplomas.dto.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface DuoLookupDto {\n  diplomas: DuoDiplomaDto[];\n  handmatig: ManualDiplomaPolicyDto;\n}\n\nexport interface DuoDiplomaDto {\n  id: string;\n  naam: string;\n  instelling: string;\n  jaar: number;\n  beroep: string; // server-derived profession\n  policyQuestions: PolicyQuestionDto[]; // server-decided geldigheidsvragen\n}\n\nexport interface ManualDiplomaPolicyDto {\n  beroepen: string[]; // professions the user may declare for a manual diploma\n  policyQuestions: PolicyQuestionDto[]; // maximal set applied to a manual diploma\n}\n\nexport interface PolicyQuestionDto {\n  id: string;\n  vraag: string;\n  type: 'ja-nee' | 'tekst';\n}\n",
            "properties": [
                {
                    "name": "beroep",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 21
                },
                {
                    "name": "instelling",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 23
                },
                {
                    "name": "jaar",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 24
                },
                {
                    "name": "naam",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "policyQuestions",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "PolicyQuestionDto[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 26
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": [],
            "isDuplicate": true,
            "duplicateId": 1,
            "duplicateName": "DuoDiplomaDto-1"
        },
        {
            "name": "DuoLookupDto",
            "id": "interface-DuoLookupDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "diplomas",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DuoDiplomaDto[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1372
                },
                {
                    "name": "handmatig",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ManualDiplomaPolicyDto",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1373
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "DuoLookupDto",
            "id": "interface-DuoLookupDto-03b724eabc3fb95affe36abb0bef921275f0c9eeefd35fab64dd906d4d76e5a38fe849098232c0aaeaf7dd32fa6c0a7b7f2a1bfbbf4c03de4a440f860b3c46e1-1",
            "file": "src/app/registratie/contracts/duo-diplomas.dto.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface DuoLookupDto {\n  diplomas: DuoDiplomaDto[];\n  handmatig: ManualDiplomaPolicyDto;\n}\n\nexport interface DuoDiplomaDto {\n  id: string;\n  naam: string;\n  instelling: string;\n  jaar: number;\n  beroep: string; // server-derived profession\n  policyQuestions: PolicyQuestionDto[]; // server-decided geldigheidsvragen\n}\n\nexport interface ManualDiplomaPolicyDto {\n  beroepen: string[]; // professions the user may declare for a manual diploma\n  policyQuestions: PolicyQuestionDto[]; // maximal set applied to a manual diploma\n}\n\nexport interface PolicyQuestionDto {\n  id: string;\n  vraag: string;\n  type: 'ja-nee' | 'tekst';\n}\n",
            "properties": [
                {
                    "name": "diplomas",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DuoDiplomaDto[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 16
                },
                {
                    "name": "handmatig",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ManualDiplomaPolicyDto",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 17
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>WIRE CONTRACT for the DUO diploma lookup (&quot;BFF-lite&quot; — one screen-shaped call\nreturning everything the beroep step needs).</p>\n<p>Each diploma carries its server-computed <code>beroep</code> (the profession it maps to)\nand the <code>policyQuestions</code> (geldigheidsvragen) that apply to it. These are\nDECISIONS computed by the backend from the diploma&#39;s attributes — the frontend\nrenders them, it does not derive them (decision-DTO pattern, ADR-0001). E.g. an\nEnglish-language diploma carries the Dutch-proficiency question.</p>\n<p><code>handmatig</code> is the fallback when the diploma is not in the DUO list: the\nprofessions the user may declare and the MAXIMAL policy-question set that then\napplies (a manual diploma is unverified, so the strictest set is used).</p>\n",
            "rawdescription": "\n\nWIRE CONTRACT for the DUO diploma lookup (\"BFF-lite\" — one screen-shaped call\nreturning everything the beroep step needs).\n\nEach diploma carries its server-computed `beroep` (the profession it maps to)\nand the `policyQuestions` (geldigheidsvragen) that apply to it. These are\nDECISIONS computed by the backend from the diploma's attributes — the frontend\nrenders them, it does not derive them (decision-DTO pattern, ADR-0001). E.g. an\nEnglish-language diploma carries the Dutch-proficiency question.\n\n`handmatig` is the fallback when the diploma is not in the DUO list: the\nprofessions the user may declare and the MAXIMAL policy-question set that then\napplies (a manual diploma is unverified, so the strictest set is used).\n",
            "methods": [],
            "extends": [],
            "isDuplicate": true,
            "duplicateId": 1,
            "duplicateName": "DuoLookupDto-1"
        },
        {
            "name": "Errors",
            "id": "interface-Errors-b7c3c5d493aa141ca68cb964e63408db7152b07336b239864d3c430b84d8eb3e650d1a3abaf3fda253444af942c45f86138a5d8229832d49bda94eec35c33546",
            "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Result, ok, err, assertNever } from '@shared/kernel/fp';\nimport { Postcode, parsePostcode } from '@registratie/domain/value-objects/postcode';\nimport { Email, parseEmail } from '@registratie/domain/value-objects/email';\nimport {\n  UploadState,\n  UploadMsg,\n  DeliveryChannel,\n  initialUpload,\n  reduceUpload,\n  requiredCategoriesSatisfied,\n  deliveryRefs,\n} from '@shared/upload/upload.machine';\n\n/**\n * A FIXED 3-step registration wizard. The steps never change in number (always\n * `STEPS`): (1) adres + correspondentievoorkeur, (2) beroep o.b.v. diploma,\n * (3) controle & indienen. Follow-up questions appear *inline within a step*\n * (e.g. choosing 'email' reveals the e-mail field). \"Is this field required\n * right now\" is a pure function (`validateStep`), so it is trivial to test and\n * impossible to get out of sync with the data. Invariants live here, not in the\n * UI: the wizard reaches `Indienen` only when a complete `ValidRegistratie` parses.\n */\n\nexport type StepId = 'adres' | 'beroep' | 'controle';\n\n/** The fixed step list. Number of steps never changes; questions reveal inline. */\nexport const STEPS: StepId[] = ['adres', 'beroep', 'controle'];\n\n/** Where a piece of data came from — recorded on the aggregate (PRD §5). */\nexport type AdresHerkomst = 'brp' | 'handmatig';\nexport type DiplomaHerkomst = 'duo' | 'handmatig';\nexport type Correspondentie = 'email' | 'post';\n\n/** One record carried across every step (and persisted). All optional: the user\n    fills it in gradually. Adres fields are kept flat so one `SetField` message\n    serves them all (mirrors the intake machine). */\nexport interface Draft {\n  straat?: string;\n  postcode?: string;\n  woonplaats?: string;\n  adresHerkomst?: AdresHerkomst;\n  correspondentie?: Correspondentie;\n  email?: string;\n  diplomaId?: string;\n  diplomaHerkomst?: DiplomaHerkomst;\n  beroep?: string; // DERIVED from the chosen DUO diploma (or declared for a manual one)\n  vraagIds?: string[]; // ids of the policy questions that apply to the chosen diploma\n  antwoorden: Record<string, string>; // geldigheidsantwoorden, keyed by question id\n}\n\n/** What we have after the controle step parses — guaranteed valid/typed. */\nexport interface ValidRegistratie {\n  adres: { straat: string; postcode: Postcode; woonplaats: string };\n  adresHerkomst: AdresHerkomst;\n  correspondentie: Correspondentie;\n  email?: Email; // only when correspondentie === 'email'\n  diplomaId: string;\n  diplomaHerkomst: DiplomaHerkomst;\n  beroep: string;\n  antwoorden: Record<string, string>;\n  documents: Array<{ categoryId: string; channel: DeliveryChannel; documentId?: string }>;\n}\n\n/** Text fields settable via SetField. */\nexport type DraftField = 'straat' | 'postcode' | 'woonplaats' | 'email';\n\n/** Per-field error map. `antwoorden` holds per-policy-question errors, keyed by\n    question id (a step can show several questions). */\nexport interface Errors {\n  straat?: string;\n  postcode?: string;\n  woonplaats?: string;\n  email?: string;\n  correspondentie?: string;\n  diploma?: string;\n  documenten?: string;\n  antwoorden?: Record<string, string>;\n}\n\nexport type RegistratieState =\n  | { tag: 'Invullen'; draft: Draft; cursor: number; errors: Errors; upload: UploadState }\n  | { tag: 'Indienen'; data: ValidRegistratie }\n  | { tag: 'Ingediend'; data: ValidRegistratie; referentie: string }\n  | { tag: 'Mislukt'; data: ValidRegistratie; error: string };\n\nconst emptyDraft: Draft = { antwoorden: {} };\nexport const initial: RegistratieState = { tag: 'Invullen', draft: emptyDraft, cursor: 0, errors: {}, upload: initialUpload };\n\n/** Which step the cursor currently points at (clamped to the fixed list). */\nexport function currentStep(s: Extract<RegistratieState, { tag: 'Invullen' }>): StepId {\n  return STEPS[Math.min(s.cursor, STEPS.length - 1)];\n}\n\n/** Has the user meaningfully started, so it's worth persisting as a Concept? Excludes\n    the automatic BRP address prefill on step 0 — a bare page visit creates nothing.\n    ponytail: an address typed at step 0 without any of these signals is not yet\n    persisted (created once they advance/choose); accepted regression vs. sessionStorage. */\nexport function hasProgress(s: Extract<RegistratieState, { tag: 'Invullen' }>): boolean {\n  const d = s.draft;\n  return (\n    s.cursor > 0 ||\n    !!d.correspondentie ||\n    !!d.email ||\n    !!d.diplomaId ||\n    !!d.beroep ||\n    deliveryRefs(s.upload).some((r) => r.channel === 'digital' && !!r.documentId)\n  );\n}\n\n/** Validate every question currently visible in ONE step. Errors keyed per field. */\nfunction validateStep(step: StepId, d: Draft, upload: UploadState): Result<Errors, void> {\n  const errors: Errors = {};\n  switch (step) {\n    case 'adres': {\n      if (!d.straat || d.straat.trim() === '') errors.straat = $localize`:@@validation.straat2:Vul een straat en huisnummer in.`;\n      const pc = parsePostcode(d.postcode ?? '');\n      if (!pc.ok) errors.postcode = pc.error;\n      if (!d.woonplaats || d.woonplaats.trim() === '') errors.woonplaats = $localize`:@@validation.woonplaats:Vul een woonplaats in.`;\n      if (!d.correspondentie) errors.correspondentie = $localize`:@@validation.maakKeuze:Maak een keuze.`;\n      // E-mail is only required when 'email' is the chosen channel.\n      if (d.correspondentie === 'email') {\n        const e = parseEmail(d.email ?? '');\n        if (!e.ok) errors.email = e.error;\n      }\n      break;\n    }\n    case 'beroep': {\n      // A diploma must be chosen (or declared manually); its beroep is then known.\n      if (!d.diplomaId || !d.beroep) {\n        errors.diploma = $localize`:@@validation.diploma:Kies het diploma waarmee u zich wilt registreren, of voer het handmatig in.`;\n        break;\n      }\n      // Every policy question the chosen diploma raised must be answered. Which\n      // questions apply is server-decided (carried in `vraagIds`); we only check\n      // they're answered.\n      const open: Record<string, string> = {};\n      for (const id of d.vraagIds ?? []) {\n        if (!(d.antwoorden[id] ?? '').trim()) open[id] = $localize`:@@validation.beantwoordVraag:Beantwoord deze vraag.`;\n      }\n      if (Object.keys(open).length > 0) errors.antwoorden = open;\n      // Required documents for this wizard attach to the beroep step (inline upload).\n      if (!requiredCategoriesSatisfied(upload)) {\n        errors.documenten = $localize`:@@validation.documenten:Lever de verplichte documenten aan (upload of kies \"per post nasturen\").`;\n      }\n      break;\n    }\n    case 'controle':\n      break; // controle shows a summary; no own fields\n    default:\n      return assertNever(step);\n  }\n  return Object.keys(errors).length > 0 ? err(errors) : ok(undefined);\n}\n\n/** Parse the whole wizard into a ValidRegistratie (called on submit). */\nfunction validateAll(d: Draft, upload: UploadState): Result<Errors, ValidRegistratie> {\n  const errors: Errors = {};\n  for (const step of STEPS) {\n    const r = validateStep(step, d, upload);\n    if (!r.ok) Object.assign(errors, r.error);\n  }\n  if (Object.keys(errors).length > 0) return err(errors);\n\n  const pc = parsePostcode(d.postcode ?? '');\n  // validateStep guaranteed these parse, but keep the compiler happy.\n  if (!pc.ok || !d.diplomaId || !d.beroep || !d.correspondentie) return err(errors);\n  const email = d.correspondentie === 'email' ? parseEmail(d.email ?? '') : undefined;\n  // Keep only the answers to the questions that actually applied.\n  const vraagIds = d.vraagIds ?? [];\n  const antwoorden = Object.fromEntries(vraagIds.map((id) => [id, d.antwoorden[id] ?? '']));\n\n  return ok({\n    adres: { straat: d.straat!, postcode: pc.value, woonplaats: d.woonplaats! },\n    adresHerkomst: d.adresHerkomst ?? 'handmatig',\n    correspondentie: d.correspondentie,\n    email: email?.ok ? email.value : undefined,\n    diplomaId: d.diplomaId,\n    diplomaHerkomst: d.diplomaHerkomst ?? 'handmatig',\n    beroep: d.beroep,\n    antwoorden,\n    documents: deliveryRefs(upload),\n  });\n}\n\nexport function setField(s: RegistratieState, key: DraftField, value: string): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  const draft: Draft = { ...s.draft, [key]: value };\n  // Editing an address field means the user owns it now — not the BRP copy.\n  if (key === 'straat' || key === 'postcode' || key === 'woonplaats') draft.adresHerkomst = 'handmatig';\n  return { ...s, draft };\n}\n\nexport function setCorrespondentie(s: RegistratieState, value: Correspondentie): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, correspondentie: value } };\n}\n\n/** Prefill the address from a BRP lookup and flag its origin (PRD §7). */\nexport function prefillAdres(s: RegistratieState, straat: string, postcode: string, woonplaats: string): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, straat, postcode, woonplaats, adresHerkomst: 'brp' } };\n}\n\n/** Pick a DUO diploma; the beroep is derived from it and the applicable policy\n    questions (`vraagIds`) come with it (both server-computed, passed in). */\nexport function kiesDiploma(s: RegistratieState, diplomaId: string, beroep: string, vraagIds: string[]): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, diplomaId, beroep, vraagIds, diplomaHerkomst: 'duo' }, errors: {} };\n}\n\n/** Switch to manual diploma entry: the diploma isn't in DUO, so the MAXIMAL\n    policy-question set applies and the entry is flagged handmatig/unverified. The\n    beroep is declared separately (declareerBeroep). */\nexport function kiesHandmatig(s: RegistratieState, vraagIds: string[]): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, diplomaId: 'handmatig', beroep: undefined, vraagIds, diplomaHerkomst: 'handmatig' }, errors: {} };\n}\n\n/** Declare the beroep for a manually-entered diploma (chosen from a fixed list). */\nexport function declareerBeroep(s: RegistratieState, beroep: string): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, beroep } };\n}\n\nexport function setAntwoord(s: RegistratieState, vraagId: string, value: string): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, antwoorden: { ...s.draft.antwoorden, [vraagId]: value } } };\n}\n\nexport function next(s: RegistratieState): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  const r = validateStep(currentStep(s), s.draft, s.upload);\n  if (!r.ok) return { ...s, errors: r.error };\n  return { ...s, cursor: Math.min(s.cursor + 1, STEPS.length - 1), errors: {} };\n}\n\nexport function back(s: RegistratieState): RegistratieState {\n  if (s.tag !== 'Invullen' || s.cursor === 0) return s;\n  return { ...s, cursor: s.cursor - 1, errors: {} };\n}\n\n/** Jump back to an earlier step to correct data (controle → step N). Forward\n    jumps are not allowed (would skip validation). Preserves the draft. */\nexport function gaNaarStap(s: RegistratieState, cursor: number): RegistratieState {\n  if (s.tag !== 'Invullen' || cursor < 0 || cursor >= s.cursor) return s;\n  return { ...s, cursor, errors: {} };\n}\n\nexport function submit(s: RegistratieState): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  const r = validateAll(s.draft, s.upload);\n  return r.ok ? { tag: 'Indienen', data: r.value } : { ...s, errors: r.error };\n}\n\n/** Route an upload sub-message through the pure upload reducer (Invullen only). */\nexport function upload(s: RegistratieState, msg: UploadMsg): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, upload: reduceUpload(s.upload, msg) };\n}\n\nexport function resolve(s: RegistratieState, r: Result<string, string>): RegistratieState {\n  if (s.tag !== 'Indienen') return s;\n  return r.ok ? { tag: 'Ingediend', data: s.data, referentie: r.value } : { tag: 'Mislukt', data: s.data, error: r.error };\n}\n\nexport type RegistratieMsg =\n  | { tag: 'SetField'; key: DraftField; value: string }\n  | { tag: 'SetCorrespondentie'; value: Correspondentie }\n  | { tag: 'PrefillAdres'; straat: string; postcode: string; woonplaats: string }\n  | { tag: 'KiesDiploma'; diplomaId: string; beroep: string; vraagIds: string[] }\n  | { tag: 'KiesHandmatig'; vraagIds: string[] }\n  | { tag: 'DeclareerBeroep'; beroep: string }\n  | { tag: 'SetAntwoord'; vraagId: string; value: string }\n  | { tag: 'Next' }\n  | { tag: 'Back' }\n  | { tag: 'GaNaarStap'; cursor: number }\n  | { tag: 'Submit' }\n  | { tag: 'Retry' }\n  | { tag: 'SubmitConfirmed'; referentie: string }\n  | { tag: 'SubmitFailed'; error: string }\n  | { tag: 'Upload'; msg: UploadMsg }\n  | { tag: 'Seed'; state: RegistratieState };\n\nexport function reduce(s: RegistratieState, m: RegistratieMsg): RegistratieState {\n  switch (m.tag) {\n    case 'SetField':\n      return setField(s, m.key, m.value);\n    case 'SetCorrespondentie':\n      return setCorrespondentie(s, m.value);\n    case 'PrefillAdres':\n      return prefillAdres(s, m.straat, m.postcode, m.woonplaats);\n    case 'KiesDiploma':\n      return kiesDiploma(s, m.diplomaId, m.beroep, m.vraagIds);\n    case 'KiesHandmatig':\n      return kiesHandmatig(s, m.vraagIds);\n    case 'DeclareerBeroep':\n      return declareerBeroep(s, m.beroep);\n    case 'SetAntwoord':\n      return setAntwoord(s, m.vraagId, m.value);\n    case 'Next':\n      return next(s);\n    case 'Back':\n      return back(s);\n    case 'GaNaarStap':\n      return gaNaarStap(s, m.cursor);\n    case 'Submit':\n      return submit(s);\n    case 'Retry':\n      return s.tag === 'Mislukt' ? { tag: 'Indienen', data: s.data } : s;\n    case 'SubmitConfirmed':\n      return s.tag === 'Indienen' ? { tag: 'Ingediend', data: s.data, referentie: m.referentie } : s;\n    case 'SubmitFailed':\n      return s.tag === 'Indienen' ? { tag: 'Mislukt', data: s.data, error: m.error } : s;\n    case 'Upload':\n      return upload(s, m.msg);\n    case 'Seed':\n      return m.state;\n    default:\n      return assertNever(m);\n  }\n}\n",
            "properties": [
                {
                    "name": "antwoorden",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Record<string | string>",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 77
                },
                {
                    "name": "correspondentie",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 74
                },
                {
                    "name": "diploma",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 75
                },
                {
                    "name": "documenten",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 76
                },
                {
                    "name": "email",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 73
                },
                {
                    "name": "postcode",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 71
                },
                {
                    "name": "straat",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 70
                },
                {
                    "name": "woonplaats",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 72
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>Per-field error map. <code>antwoorden</code> holds per-policy-question errors, keyed by\nquestion id (a step can show several questions).</p>\n",
            "rawdescription": "\nPer-field error map. `antwoorden` holds per-policy-question errors, keyed by\nquestion id (a step can show several questions).",
            "methods": [],
            "extends": []
        },
        {
            "name": "Glyph",
            "id": "interface-Glyph-bc824192fb4b5b1e5ca46093e18a138c2c643d35be29ea257636d0b96b1867c3aa6d37f84437e9315f4e8157cdd99351b9bb1fe0f58adadd7cafca9c69d46185",
            "file": "src/app/shared/ui/upload/upload-status-icon/upload-status-icon.component.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Component, computed, input } from '@angular/core';\nimport type { UploadStatus } from '@shared/upload/upload.machine';\n\ninterface Glyph {\n  char: string;\n  label: string;\n  color: string;\n}\n\n/** Atom: a small status glyph for one upload. Pure UI — glyph, colour and a11y\n    label derive purely from the status type. */\n@Component({\n  selector: 'app-upload-status-icon',\n  styles: [`\n    .glyph { font-weight: var(--rhc-text-font-weight-semi-bold); }\n  `],\n  template: `\n    @if (glyph()) {\n      <span class=\"glyph\" [style.color]=\"glyph()!.color\" [attr.aria-label]=\"glyph()!.label\" role=\"img\">\n        {{ glyph()!.char }}\n      </span>\n    }\n  `,\n})\nexport class UploadStatusIconComponent {\n  status = input.required<UploadStatus['type']>();\n\n  protected readonly glyph = computed<Glyph | null>(() => {\n    switch (this.status()) {\n      case 'queued':\n        return { char: '…', label: $localize`:@@upload.status.queued:In wachtrij`, color: 'var(--rhc-color-foreground-subtle)' };\n      case 'uploading':\n        return { char: '↑', label: $localize`:@@upload.status.uploading:Bezig met uploaden`, color: 'var(--rhc-color-lintblauw-600)' };\n      case 'complete':\n        return { char: '✓', label: $localize`:@@upload.status.complete:Geüpload`, color: 'var(--rhc-color-groen-500)' };\n      case 'failed':\n        return { char: '✕', label: $localize`:@@upload.status.failed:Mislukt`, color: 'var(--rhc-color-rood-500)' };\n      case 'deleting':\n        return { char: '⟳', label: $localize`:@@upload.status.deleting:Bezig met verwijderen`, color: 'var(--rhc-color-foreground-subtle)' };\n      case 'idle':\n      case 'deleted':\n        return null;\n    }\n  });\n}\n",
            "properties": [
                {
                    "name": "char",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 5
                },
                {
                    "name": "color",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 7
                },
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 6
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "HeaderNavItem",
            "id": "interface-HeaderNavItem-d54300d0ac696bf6b73475c3fe4a3361abeb7fe500974720d181c345c1522016509451d281951a621c673f50b01b330a5467fe0748789cf5d4a8995bd03c9a95",
            "file": "src/app/shared/layout/site-header/site-header.component.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Component, computed, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NavigationEnd, Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport { filter, map } from 'rxjs/operators';\nimport { SESSION_PORT } from '@shared/application/session.port';\nimport { BreadcrumbComponent } from '@shared/layout/breadcrumb/breadcrumb.component';\nimport { trailFor } from '@shared/layout/breadcrumb/breadcrumb-trail';\n\ninterface HeaderNavItem {\n  readonly label: string;\n  readonly to: string;\n}\n\nconst NAV_ITEMS: readonly HeaderNavItem[] = [\n  { label: $localize`:@@header.nav.overzicht:Overzicht`, to: '/dashboard' },\n  { label: $localize`:@@header.nav.gegevens:Mijn gegevens`, to: '/registratie' },\n  { label: $localize`:@@header.nav.herregistratie:Herregistratie`, to: '/herregistratie' },\n  { label: $localize`:@@header.nav.inschrijven:Inschrijven`, to: '/registreren' },\n];\n\n/** Organism: CIBG Huisstijl site header — logo block, robijn titlebar (breadcrumb +\n    user menu), horizontal nav. ponytail: text wordmark, not the licensed Rijksoverheid\n    beeldmerk; no search box (no search feature yet). */\n@Component({\n  selector: 'app-site-header',\n  imports: [RouterLink, RouterLinkActive, BreadcrumbComponent],\n  styles: [`\n    .logout{background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;font:inherit;color:inherit}\n    /* CIBG's header nav has no bg by default in this build — the grey bar is ours.\n       (.titlebar keeps its own robijn fill — --ro-layout — untouched; the breadcrumb\n       inside it has no background of its own, so the bar's colour shows through.) */\n    nav{background-color:var(--rhc-color-cool-grey-200)}\n  `],\n  template: `\n    <header>\n      <div class=\"logo\">\n        <div class=\"logo__wrapper\">\n          <a routerLink=\"/dashboard\" class=\"logo__link\">\n            <figure class=\"logo__figure\">\n              <figcaption class=\"logo__text\">\n                <span class=\"logo__sender\" i18n=\"@@header.sender\">BIG-register</span>\n                <span class=\"logo__ministry\" i18n=\"@@header.ministry\">Ministerie van Volksgezondheid, Welzijn en Sport</span>\n              </figcaption>\n            </figure>\n          </a>\n        </div>\n      </div>\n      <div class=\"titlebar\">\n        <div class=\"container\">\n          <div class=\"row\">\n            <div class=\"title col-md-7\">\n              @if (trail().length) { <app-breadcrumb [items]=\"trail()\" /> }\n            </div>\n            <div class=\"user-menu col-md-5\">\n              @if (session(); as s) {\n                <div><span class=\"login-name\">{{ s.naam }}</span></div>\n                <div><button type=\"button\" class=\"logout\" (click)=\"logout()\" i18n=\"@@header.uitloggen\">Uitloggen</button></div>\n              }\n            </div>\n          </div>\n        </div>\n      </div>\n      <nav i18n-aria-label=\"@@header.navAria\" aria-label=\"Hoofdnavigatie\">\n        <div class=\"container\">\n          <ul>\n            @for (item of navItems; track item.to) {\n              <li routerLinkActive=\"active\" [routerLinkActiveOptions]=\"{ exact: true }\">\n                <a [routerLink]=\"item.to\">{{ item.label }}</a>\n              </li>\n            }\n          </ul>\n        </div>\n      </nav>\n    </header>\n  `,\n})\nexport class SiteHeaderComponent {\n  protected readonly navItems = NAV_ITEMS;\n\n  private router = inject(Router);\n  private sessionPort = inject(SESSION_PORT, { optional: true });\n\n  readonly session = computed(() => this.sessionPort?.session() ?? null);\n  private url = toSignal(\n    this.router.events.pipe(filter((e) => e instanceof NavigationEnd), map(() => this.router.url)),\n    { initialValue: this.router.url },\n  );\n  protected trail = computed(() => trailFor(this.url()));\n\n  logout() {\n    this.sessionPort?.logout();\n    this.router.navigate(['/login']);\n  }\n}\n",
            "properties": [
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 10,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "to",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 11,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "HerregistratieDecisions",
            "id": "interface-HerregistratieDecisions-10d81af9017230c2e0704c882140be892d1e2a8d6343f8d169bcdb8e99516bc135a9b17faf4ea0fb5d4da561476db228b7f2dab7d27e4c262acdecbe1b7f6241",
            "file": "src/app/registratie/contracts/dashboard-view.dto.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export type RegistrationStatusDto =\n  | { tag: 'Geregistreerd'; herregistratieDatum: string } // ISO date\n  | { tag: 'Geschorst'; geschorstTot: string; reden: string }\n  | { tag: 'Doorgehaald'; doorgehaaldOp: string; reden: string };\n\nexport interface RegistrationDto {\n  bigNummer: string;\n  naam: string;\n  beroep: string;\n  registratiedatum: string; // ISO date\n  geboortedatum: string;\n  status: RegistrationStatusDto;\n}\n\nexport interface AdresDto {\n  straat: string;\n  postcode: string;\n  woonplaats: string;\n}\n\nexport interface PersonDto {\n  naam: string;\n  geboortedatum: string; // ISO date\n  adres: AdresDto;\n}\n\n/** Server-computed decisions. Rendered by the FE as-is (decision DTO, ADR-0001):\n    the eligibility rule lives on the backend; the optional reason lets the UI\n    explain itself without knowing the rule. */\nexport interface HerregistratieDecisions {\n  eligibleForHerregistratie: boolean;\n  herregistratieReason?: string;\n}\n\nexport interface DashboardViewDto {\n  registration: RegistrationDto;\n  person: PersonDto;\n  decisions: HerregistratieDecisions;\n}\n",
            "properties": [
                {
                    "name": "eligibleForHerregistratie",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 51
                },
                {
                    "name": "herregistratieReason",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 52
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>Server-computed decisions. Rendered by the FE as-is (decision DTO, ADR-0001):\nthe eligibility rule lives on the backend; the optional reason lets the UI\nexplain itself without knowing the rule.</p>\n",
            "rawdescription": "\nServer-computed decisions. Rendered by the FE as-is (decision DTO, ADR-0001):\nthe eligibility rule lives on the backend; the optional reason lets the UI\nexplain itself without knowing the rule.",
            "methods": [],
            "extends": []
        },
        {
            "name": "HerregistratieDecisionsDto",
            "id": "interface-HerregistratieDecisionsDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "eligibleForHerregistratie",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1377
                },
                {
                    "name": "herregistratieReason",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1378
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "HerregistratieRequest",
            "id": "interface-HerregistratieRequest-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "documents",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DocumentRefDto[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1383
                },
                {
                    "name": "uren",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1382
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "IntakePolicyDto",
            "id": "interface-IntakePolicyDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "scholingThreshold",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1387
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "IntakeRequest",
            "id": "interface-IntakeRequest-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "uren",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1391
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "LetterBlockDto",
            "id": "interface-LetterBlockDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "blockId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1396
                },
                {
                    "name": "content",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RichTextBlockDto",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1397
                },
                {
                    "name": "edited",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1400
                },
                {
                    "name": "sourcePassageId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1398
                },
                {
                    "name": "sourceVersion",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1399
                },
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1395
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "LetterSection",
            "id": "interface-LetterSection-039c5d6b394bb2232cfe3dcb751c570fd3683a09171bc3d7a7a6498185bff667b40236840f0c1010e79861a99c27279a3c324ae82cebd97ef0a73f87f27878a4",
            "file": "src/app/brief/domain/brief.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { RichTextBlock, placeholderKeysIn } from '@shared/kernel/rich-text';\nimport { Diagnostic, lintPlaceholders, PlaceholderDef } from './placeholders';\n\n/**\n * The `Brief` (letter) entity and its derived selectors.\n *\n * A letter has a FIXED section structure (from a template, server-instantiated); the\n * drafter fills a skeleton, never reorders sections. Each block is either a frozen\n * snapshot of a library passage (provenance kept) or free text. Everything the UI\n * needs beyond the stored shape — diagnostics, unresolved placeholders, whether it\n * can be submitted — is DERIVED here, never stored.\n */\n\nexport type PassageScope = 'global' | 'beroep';\n\n// Re-export placeholderKeysIn for one-import convenience at call sites.\nexport { placeholderKeysIn };\n\n/** A passage in the library (the source). Snapshotted into a letter on insert. */\nexport interface LibraryPassage {\n  readonly passageId: string;\n  readonly scope: PassageScope;\n  readonly beroep?: string; // set when scope === 'beroep'\n  readonly sectionKey: string;\n  readonly label: string;\n  readonly content: RichTextBlock;\n  readonly version: number; // library version, for provenance only\n}\n\n/** A block inside a letter section: a frozen passage snapshot, or free text. */\nexport type LetterBlock =\n  | {\n      readonly type: 'passage';\n      readonly blockId: string;\n      readonly sourcePassageId: string; // provenance\n      readonly sourceVersion: number; // library version at snapshot time (audit only)\n      readonly content: RichTextBlock; // FROZEN, possibly edited — source of truth for this block\n      readonly edited: boolean; // changed from the snapshot?\n    }\n  | {\n      readonly type: 'freeText';\n      readonly blockId: string;\n      readonly content: RichTextBlock;\n    };\n\nexport interface LetterSection {\n  readonly sectionKey: string;\n  readonly title: string;\n  readonly required: boolean;\n  // Predefined template sections (aanhef, slot) arrive locked and prefilled — the drafter\n  // composes only the unlocked section(s). The reducer refuses edits to locked sections.\n  readonly locked: boolean;\n  readonly blocks: readonly LetterBlock[];\n}\n\n/** The approval state machine as a sum type — transitions are total and guarded in\n    `brief.machine.ts`; illegal transitions are unrepresentable. */\nexport type BriefStatus =\n  | { readonly tag: 'draft' }\n  | { readonly tag: 'submitted'; readonly submittedBy: string; readonly submittedAt: string }\n  | { readonly tag: 'approved'; readonly approvedBy: string; readonly approvedAt: string }\n  | { readonly tag: 'rejected'; readonly rejectedBy: string; readonly rejectedAt: string; readonly comments: string }\n  | { readonly tag: 'sent'; readonly sentAt: string };\n\nexport interface Brief {\n  readonly briefId: string;\n  readonly beroep: string; // drives which beroep-scoped passages apply\n  readonly templateId: string;\n  readonly placeholders: readonly PlaceholderDef[]; // valid fields for this letter\n  readonly sections: readonly LetterSection[]; // instantiated from the template, in order\n  readonly status: BriefStatus;\n  readonly drafterId: string;\n}\n\n// --- Derived selectors (pure; recomputed, never stored) ---\n\nexport function allBlocks(brief: Brief): LetterBlock[] {\n  return brief.sections.flatMap((s) => s.blocks);\n}\n\n/** Every diagnostic in the letter, in section→block→node order. This is what the\n    diagnostics panel renders and what the send gate checks. */\nexport function allDiagnostics(brief: Brief): Diagnostic[] {\n  return allBlocks(brief).flatMap((b) => lintPlaceholders(b.content, brief.placeholders, b.blockId));\n}\n\nexport function hasBlockingErrors(diagnostics: readonly Diagnostic[]): boolean {\n  return diagnostics.some((d) => d.severity === 'error');\n}\n\n/** Manual (non-auto-resolvable) placeholder keys still present, deduped. These are the\n    `unresolved-at-send` warnings, surfaced as a completeness list. */\nexport function unresolvedPlaceholders(brief: Brief): string[] {\n  const auto = new Set(brief.placeholders.filter((p) => p.autoResolvable).map((p) => p.key));\n  const used = allBlocks(brief).flatMap((b) => placeholderKeysIn(b.content));\n  return [...new Set(used.filter((k) => !auto.has(k)))];\n}\n\n/** A letter can be submitted only when every REQUIRED section has at least one block. */\nexport function canSubmit(brief: Brief): boolean {\n  return brief.sections.every((s) => !s.required || s.blocks.length > 0);\n}\n",
            "properties": [
                {
                    "name": "blocks",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 53,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "locked",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 52,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "required",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 49,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "sectionKey",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 47,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "title",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 48,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "LetterSectionDto",
            "id": "interface-LetterSectionDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "blocks",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LetterBlockDto[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1407
                },
                {
                    "name": "locked",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1408
                },
                {
                    "name": "required",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1406
                },
                {
                    "name": "sectionKey",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1404
                },
                {
                    "name": "title",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1405
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "LibraryPassage",
            "id": "interface-LibraryPassage-039c5d6b394bb2232cfe3dcb751c570fd3683a09171bc3d7a7a6498185bff667b40236840f0c1010e79861a99c27279a3c324ae82cebd97ef0a73f87f27878a4",
            "file": "src/app/brief/domain/brief.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { RichTextBlock, placeholderKeysIn } from '@shared/kernel/rich-text';\nimport { Diagnostic, lintPlaceholders, PlaceholderDef } from './placeholders';\n\n/**\n * The `Brief` (letter) entity and its derived selectors.\n *\n * A letter has a FIXED section structure (from a template, server-instantiated); the\n * drafter fills a skeleton, never reorders sections. Each block is either a frozen\n * snapshot of a library passage (provenance kept) or free text. Everything the UI\n * needs beyond the stored shape — diagnostics, unresolved placeholders, whether it\n * can be submitted — is DERIVED here, never stored.\n */\n\nexport type PassageScope = 'global' | 'beroep';\n\n// Re-export placeholderKeysIn for one-import convenience at call sites.\nexport { placeholderKeysIn };\n\n/** A passage in the library (the source). Snapshotted into a letter on insert. */\nexport interface LibraryPassage {\n  readonly passageId: string;\n  readonly scope: PassageScope;\n  readonly beroep?: string; // set when scope === 'beroep'\n  readonly sectionKey: string;\n  readonly label: string;\n  readonly content: RichTextBlock;\n  readonly version: number; // library version, for provenance only\n}\n\n/** A block inside a letter section: a frozen passage snapshot, or free text. */\nexport type LetterBlock =\n  | {\n      readonly type: 'passage';\n      readonly blockId: string;\n      readonly sourcePassageId: string; // provenance\n      readonly sourceVersion: number; // library version at snapshot time (audit only)\n      readonly content: RichTextBlock; // FROZEN, possibly edited — source of truth for this block\n      readonly edited: boolean; // changed from the snapshot?\n    }\n  | {\n      readonly type: 'freeText';\n      readonly blockId: string;\n      readonly content: RichTextBlock;\n    };\n\nexport interface LetterSection {\n  readonly sectionKey: string;\n  readonly title: string;\n  readonly required: boolean;\n  // Predefined template sections (aanhef, slot) arrive locked and prefilled — the drafter\n  // composes only the unlocked section(s). The reducer refuses edits to locked sections.\n  readonly locked: boolean;\n  readonly blocks: readonly LetterBlock[];\n}\n\n/** The approval state machine as a sum type — transitions are total and guarded in\n    `brief.machine.ts`; illegal transitions are unrepresentable. */\nexport type BriefStatus =\n  | { readonly tag: 'draft' }\n  | { readonly tag: 'submitted'; readonly submittedBy: string; readonly submittedAt: string }\n  | { readonly tag: 'approved'; readonly approvedBy: string; readonly approvedAt: string }\n  | { readonly tag: 'rejected'; readonly rejectedBy: string; readonly rejectedAt: string; readonly comments: string }\n  | { readonly tag: 'sent'; readonly sentAt: string };\n\nexport interface Brief {\n  readonly briefId: string;\n  readonly beroep: string; // drives which beroep-scoped passages apply\n  readonly templateId: string;\n  readonly placeholders: readonly PlaceholderDef[]; // valid fields for this letter\n  readonly sections: readonly LetterSection[]; // instantiated from the template, in order\n  readonly status: BriefStatus;\n  readonly drafterId: string;\n}\n\n// --- Derived selectors (pure; recomputed, never stored) ---\n\nexport function allBlocks(brief: Brief): LetterBlock[] {\n  return brief.sections.flatMap((s) => s.blocks);\n}\n\n/** Every diagnostic in the letter, in section→block→node order. This is what the\n    diagnostics panel renders and what the send gate checks. */\nexport function allDiagnostics(brief: Brief): Diagnostic[] {\n  return allBlocks(brief).flatMap((b) => lintPlaceholders(b.content, brief.placeholders, b.blockId));\n}\n\nexport function hasBlockingErrors(diagnostics: readonly Diagnostic[]): boolean {\n  return diagnostics.some((d) => d.severity === 'error');\n}\n\n/** Manual (non-auto-resolvable) placeholder keys still present, deduped. These are the\n    `unresolved-at-send` warnings, surfaced as a completeness list. */\nexport function unresolvedPlaceholders(brief: Brief): string[] {\n  const auto = new Set(brief.placeholders.filter((p) => p.autoResolvable).map((p) => p.key));\n  const used = allBlocks(brief).flatMap((b) => placeholderKeysIn(b.content));\n  return [...new Set(used.filter((k) => !auto.has(k)))];\n}\n\n/** A letter can be submitted only when every REQUIRED section has at least one block. */\nexport function canSubmit(brief: Brief): boolean {\n  return brief.sections.every((s) => !s.required || s.blocks.length > 0);\n}\n",
            "properties": [
                {
                    "name": "beroep",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 23,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "content",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RichTextBlock",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 26,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 25,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "passageId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 21,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "scope",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "PassageScope",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "sectionKey",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 24,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "version",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 27,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>A passage in the library (the source). Snapshotted into a letter on insert.</p>\n",
            "rawdescription": "\nA passage in the library (the source). Snapshotted into a letter on insert.",
            "methods": [],
            "extends": []
        },
        {
            "name": "LibraryPassageDto",
            "id": "interface-LibraryPassageDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "beroep",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1418
                },
                {
                    "name": "content",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RichTextBlockDto",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1416
                },
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1415
                },
                {
                    "name": "passageId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1412
                },
                {
                    "name": "scope",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1413
                },
                {
                    "name": "sectionKey",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1414
                },
                {
                    "name": "version",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1417
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "ManualDiplomaPolicyDto",
            "id": "interface-ManualDiplomaPolicyDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "beroepen",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1422
                },
                {
                    "name": "policyQuestions",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "PolicyQuestionDto[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1423
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "ManualDiplomaPolicyDto",
            "id": "interface-ManualDiplomaPolicyDto-03b724eabc3fb95affe36abb0bef921275f0c9eeefd35fab64dd906d4d76e5a38fe849098232c0aaeaf7dd32fa6c0a7b7f2a1bfbbf4c03de4a440f860b3c46e1-1",
            "file": "src/app/registratie/contracts/duo-diplomas.dto.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface DuoLookupDto {\n  diplomas: DuoDiplomaDto[];\n  handmatig: ManualDiplomaPolicyDto;\n}\n\nexport interface DuoDiplomaDto {\n  id: string;\n  naam: string;\n  instelling: string;\n  jaar: number;\n  beroep: string; // server-derived profession\n  policyQuestions: PolicyQuestionDto[]; // server-decided geldigheidsvragen\n}\n\nexport interface ManualDiplomaPolicyDto {\n  beroepen: string[]; // professions the user may declare for a manual diploma\n  policyQuestions: PolicyQuestionDto[]; // maximal set applied to a manual diploma\n}\n\nexport interface PolicyQuestionDto {\n  id: string;\n  vraag: string;\n  type: 'ja-nee' | 'tekst';\n}\n",
            "properties": [
                {
                    "name": "beroepen",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 30
                },
                {
                    "name": "policyQuestions",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "PolicyQuestionDto[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 31
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": [],
            "isDuplicate": true,
            "duplicateId": 1,
            "duplicateName": "ManualDiplomaPolicyDto-1"
        },
        {
            "name": "Paragraph",
            "id": "interface-Paragraph-c2d889eaa693df9c04ea212ab04e3ecf791f72b27c8dbf611134586bea92876ed6887499f9c8e58c49023b46f7373f68901d75b46539efc375fbb84f97d79aa2",
            "file": "src/app/shared/kernel/rich-text.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export type Mark = 'bold' | 'italic' | 'underline';\n\nexport type RichTextNode =\n  | { readonly type: 'text'; readonly text: string; readonly marks?: readonly Mark[] }\n  | { readonly type: 'placeholder'; readonly key: string } // resolved to a value at send\n  | { readonly type: 'lineBreak' };\n\nexport interface Paragraph {\n  readonly nodes: readonly RichTextNode[];\n  // A line can be a plain paragraph (undefined) or an item in a bullet/numbered list.\n  // Consecutive lines with the same list kind render as one <ul>/<ol>.\n  readonly list?: 'bullet' | 'number';\n}\n\nexport interface RichTextBlock {\n  readonly paragraphs: readonly Paragraph[];\n}\n\n/** An empty editable block is one empty paragraph — never zero paragraphs, so the\n    editor always has a caret line. */\nexport function emptyBlock(): RichTextBlock {\n  return { paragraphs: [{ nodes: [] }] };\n}\n\n/** True when the block carries no visible content (used for \"required section empty\"). */\nexport function isBlockEmpty(block: RichTextBlock): boolean {\n  return block.paragraphs.every((p) =>\n    p.nodes.every((n) => (n.type === 'text' ? n.text.trim() === '' : false)),\n  );\n}\n\n/** The frozen-snapshot primitive: a deep VALUE copy of a block. Inserting a library\n    passage into a letter copies its tree through here, so the letter never shares a\n    reference with the library — later library edits can't mutate an existing letter. */\nexport function deepCopyBlock(block: RichTextBlock): RichTextBlock {\n  // ponytail: structuredClone is exactly a deep value copy of a JSON-shaped tree;\n  // a hand-rolled walk would be more code for the same result.\n  return structuredClone(block) as RichTextBlock;\n}\n\n/** Every placeholder key used in a block, in document order (duplicates kept — the\n    caller dedupes when it wants a set). */\nexport function placeholderKeysIn(block: RichTextBlock): string[] {\n  const keys: string[] = [];\n  for (const p of block.paragraphs) {\n    for (const n of p.nodes) {\n      if (n.type === 'placeholder') keys.push(n.key);\n    }\n  }\n  return keys;\n}\n",
            "properties": [
                {
                    "name": "list",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "\"bullet\" | \"number\"",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 23,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "nodes",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 20,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "ParagraphDto",
            "id": "interface-ParagraphDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "list",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1428
                },
                {
                    "name": "nodes",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RichTextNodeDto[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1427
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "Person",
            "id": "interface-Person-07cec46d80a41919e40d0bcb002981627d1a30edb363d64a0a140a8af2c38ad85be5603d88030d0704870800694c5bed9c709ae6891fe83e646e90c1a67cf548",
            "file": "src/app/registratie/domain/person.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface Adres {\n  straat: string;\n  postcode: string;\n  woonplaats: string;\n}\n\nexport interface Person {\n  naam: string;\n  geboortedatum: string; // ISO date\n  adres: Adres;\n}\n",
            "properties": [
                {
                    "name": "adres",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Adres",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 11
                },
                {
                    "name": "geboortedatum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 10
                },
                {
                    "name": "naam",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 9
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "PersonDto",
            "id": "interface-PersonDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "adres",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AdresDto",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1434
                },
                {
                    "name": "geboortedatum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1433
                },
                {
                    "name": "naam",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1432
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "PersonDto",
            "id": "interface-PersonDto-10d81af9017230c2e0704c882140be892d1e2a8d6343f8d169bcdb8e99516bc135a9b17faf4ea0fb5d4da561476db228b7f2dab7d27e4c262acdecbe1b7f6241-1",
            "file": "src/app/registratie/contracts/dashboard-view.dto.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export type RegistrationStatusDto =\n  | { tag: 'Geregistreerd'; herregistratieDatum: string } // ISO date\n  | { tag: 'Geschorst'; geschorstTot: string; reden: string }\n  | { tag: 'Doorgehaald'; doorgehaaldOp: string; reden: string };\n\nexport interface RegistrationDto {\n  bigNummer: string;\n  naam: string;\n  beroep: string;\n  registratiedatum: string; // ISO date\n  geboortedatum: string;\n  status: RegistrationStatusDto;\n}\n\nexport interface AdresDto {\n  straat: string;\n  postcode: string;\n  woonplaats: string;\n}\n\nexport interface PersonDto {\n  naam: string;\n  geboortedatum: string; // ISO date\n  adres: AdresDto;\n}\n\n/** Server-computed decisions. Rendered by the FE as-is (decision DTO, ADR-0001):\n    the eligibility rule lives on the backend; the optional reason lets the UI\n    explain itself without knowing the rule. */\nexport interface HerregistratieDecisions {\n  eligibleForHerregistratie: boolean;\n  herregistratieReason?: string;\n}\n\nexport interface DashboardViewDto {\n  registration: RegistrationDto;\n  person: PersonDto;\n  decisions: HerregistratieDecisions;\n}\n",
            "properties": [
                {
                    "name": "adres",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AdresDto",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 44
                },
                {
                    "name": "geboortedatum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 43
                },
                {
                    "name": "naam",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 42
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": [],
            "isDuplicate": true,
            "duplicateId": 1,
            "duplicateName": "PersonDto-1"
        },
        {
            "name": "PlaceholderDef",
            "id": "interface-PlaceholderDef-7cd6b7f0437b0e74cbd408b88e6dceda3d58ed0171b5fc3baf66911b7dae607149d424cee85829f75b69eef30cea3d3978b49dd3d8ecdd5311e71533576fd713",
            "file": "src/app/brief/domain/placeholders.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { RichTextBlock } from '@shared/kernel/rich-text';\n\n/**\n * Placeholder fields and the PURE linter over them.\n *\n * `lintPlaceholders` is a total, effect-free function of (content, valid set). It\n * runs identically on the client (for live UX) and could run on the server (for\n * authority) — same rules, same config, so the two agree by construction. The FE\n * never STORES its output: diagnostics are a `computed()` over content (see\n * `brief.ts` selectors), the same \"derive, don't store\" discipline as wizard step\n * validity.\n */\n\n/** A placeholder field the template knows about. `fillable`/`deprecated` default to\n    the healthy case; the seed flips them to exercise the not-fillable/deprecated rules. */\nexport interface PlaceholderDef {\n  readonly key: string; // e.g. 'naam_zorgverlener'\n  readonly label: string; // human label for the insert menu, e.g. 'Naam zorgverlener'\n  readonly autoResolvable: boolean; // server can fill from case data (name, date, …)\n  readonly fillable?: boolean; // default true; false → not resolvable for this beroep/case type\n  readonly deprecated?: boolean; // default false; true → retired but still referenceable in old snapshots\n}\n\nexport type DiagnosticSeverity = 'error' | 'warning';\n\nexport type DiagnosticCode =\n  | 'malformed' // raw braces in a text node (a paste that should have been a chip)\n  | 'unknown-placeholder' // well-formed key not in the valid set\n  | 'not-fillable' // key exists but isn't resolvable for this case type / beroep\n  | 'deprecated' // key was valid once but the template no longer offers it\n  | 'unresolved-at-send'; // manual (non-auto-resolvable) placeholder still to be filled\n\nexport interface DiagnosticLocation {\n  readonly blockId: string;\n  readonly paragraphIndex: number;\n  readonly nodeIndex: number;\n}\n\nexport interface Diagnostic {\n  readonly severity: DiagnosticSeverity;\n  readonly code: DiagnosticCode;\n  readonly placeholderKey?: string;\n  readonly location: DiagnosticLocation;\n  readonly message: string; // human-readable, Dutch\n}\n\n/** `error` blocks save (author time) and send (send time); `warning` is surfaced but allowed. */\nexport function severityOf(code: DiagnosticCode): DiagnosticSeverity {\n  switch (code) {\n    case 'malformed':\n    case 'unknown-placeholder':\n    case 'not-fillable':\n      return 'error';\n    case 'deprecated':\n    case 'unresolved-at-send':\n      return 'warning';\n  }\n}\n\n// Raw `{{` or `}}` in text — the only way a malformed placeholder can exist, since\n// menu insertion always produces a proper placeholder NODE. Paste safety net.\nconst RAW_BRACES = /\\{\\{|\\}\\}/;\n\nfunction messageFor(code: DiagnosticCode, key?: string): string {\n  switch (code) {\n    case 'malformed':\n      return $localize`:@@brief.lint.malformed:Deze tekst bevat losse accolades ({{ of }}). Voeg een veld toe via het menu in plaats van het te typen.`;\n    case 'unknown-placeholder':\n      return $localize`:@@brief.lint.unknown:Onbekend veld “${key}:key:”. Dit veld hoort niet bij dit sjabloon.`;\n    case 'not-fillable':\n      return $localize`:@@brief.lint.notFillable:Veld “${key}:key:” kan niet worden ingevuld voor dit beroep.`;\n    case 'deprecated':\n      return $localize`:@@brief.lint.deprecated:Veld “${key}:key:” is verouderd en wordt niet meer aangeboden.`;\n    case 'unresolved-at-send':\n      return $localize`:@@brief.lint.unresolved:Veld “${key}:key:” wordt handmatig ingevuld en is nog leeg.`;\n  }\n}\n\nfunction diag(code: DiagnosticCode, location: DiagnosticLocation, key?: string): Diagnostic {\n  return { severity: severityOf(code), code, placeholderKey: key, location, message: messageFor(code, key) };\n}\n\n/**\n * Lint one block against the template's placeholder set. Pure: given the same\n * content + valid set + blockId it always returns the same diagnostics, in\n * document order. One diagnostic per node at most (most-severe wins).\n */\nexport function lintPlaceholders(\n  content: RichTextBlock,\n  valid: readonly PlaceholderDef[],\n  blockId: string,\n): Diagnostic[] {\n  const byKey = new Map(valid.map((p) => [p.key, p]));\n  const out: Diagnostic[] = [];\n\n  content.paragraphs.forEach((p, paragraphIndex) => {\n    p.nodes.forEach((n, nodeIndex) => {\n      const location: DiagnosticLocation = { blockId, paragraphIndex, nodeIndex };\n      if (n.type === 'text') {\n        if (RAW_BRACES.test(n.text)) out.push(diag('malformed', location));\n        return;\n      }\n      if (n.type !== 'placeholder') return; // lineBreak — nothing to check\n\n      const def = byKey.get(n.key);\n      if (!def) out.push(diag('unknown-placeholder', location, n.key));\n      else if (def.fillable === false) out.push(diag('not-fillable', location, n.key));\n      else if (def.deprecated) out.push(diag('deprecated', location, n.key));\n      else if (!def.autoResolvable) out.push(diag('unresolved-at-send', location, n.key));\n      // auto-resolvable & fillable & not deprecated → clean (filled by the server at send)\n    });\n  });\n\n  return out;\n}\n",
            "properties": [
                {
                    "name": "autoResolvable",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 19,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "deprecated",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 21,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "fillable",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 20,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "key",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 17,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 18,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>A placeholder field the template knows about. <code>fillable</code>/<code>deprecated</code> default to\nthe healthy case; the seed flips them to exercise the not-fillable/deprecated rules.</p>\n",
            "rawdescription": "\nA placeholder field the template knows about. `fillable`/`deprecated` default to\nthe healthy case; the seed flips them to exercise the not-fillable/deprecated rules.",
            "methods": [],
            "extends": []
        },
        {
            "name": "PlaceholderDefDto",
            "id": "interface-PlaceholderDefDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "autoResolvable",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1440
                },
                {
                    "name": "deprecated",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1442
                },
                {
                    "name": "fillable",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1441
                },
                {
                    "name": "key",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1438
                },
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1439
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "PlaceholderOption",
            "id": "interface-PlaceholderOption-4c9a9a5d4bb9dab7bd9e7947414aa0d5db7b5200cd68b6764a0343f354365decd1f3575978b9eb5e2d371f978213f6c65307a95e423e8e68efd7c6d3edb9df13",
            "file": "src/app/shared/ui/rich-text-editor/rich-text-editor.component.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Component, ElementRef, computed, effect, input, output, viewChild } from '@angular/core';\nimport { RichTextBlock, emptyBlock } from '@shared/kernel/rich-text';\nimport { adjacentChip, createChip, readBlock, renderInto } from './rich-text-dom';\n\n/** A menu entry for the insert-placeholder control — a plain {key,label}, so the\n    editor stays domain-free (it never sees the brief's PlaceholderDef). */\nexport interface PlaceholderOption {\n  readonly key: string;\n  readonly label: string;\n  // Auto-resolvable fields are filled server-side at send; manual fields need a value.\n  // Drives the chip's styling so the two read apart at a glance.\n  readonly autoResolvable?: boolean;\n}\n\n/**\n * Molecule: a minimal no-dependency WYSIWYG editor over a `RichTextBlock`.\n *\n * It is the single quarantined boundary to the imperative `contenteditable` DOM:\n * `content` in, `contentChanged` (a `RichTextBlock`) out, holding NO letter state.\n * Placeholders render as non-editable chips and can only be inserted from the menu\n * (valid keys only) — never typed as raw braces. Swapping in a real editor library\n * later (TipTap) means replacing only this component; nothing else sees the DOM.\n */\n@Component({\n  selector: 'app-rich-text-editor',\n  styles: [`\n    :host{display:block}\n    .rte-toolbar{display:flex;flex-wrap:wrap;gap:var(--rhc-space-max-sm);align-items:center;margin-block-end:var(--rhc-space-max-sm)}\n    .rte-toolbar button{min-inline-size:2.2rem}\n    .rte-sep{inline-size:1px;align-self:stretch;background:var(--rhc-color-border-default)}\n    .rte-editable{\n      border:1px solid var(--rhc-color-border-default);border-radius:var(--rhc-border-radius-sm);\n      padding:var(--rhc-space-max-md);min-block-size:4rem;\n    }\n    .rte-editable[contenteditable='false']{background:var(--rhc-color-cool-grey-100)}\n    .rte-editable :is(p){margin:0 0 var(--rhc-space-max-sm)}\n    .rte-editable :is(ul,ol){margin:0 0 var(--rhc-space-max-sm);padding-inline-start:1.4em}\n    /* Placeholder chips read as fill-in fields: auto-resolvable (grey, filled server-side)\n       vs manual (yellow, still needs a value). The read-only preview adds error/warning states.\n       Chips are created imperatively (createChip) inside contenteditable, so they never receive\n       Angular's _ngcontent scoping attribute — ::ng-deep is required or the rules won't match them.\n       Braces use unicode escapes; a literal { in a CSS content string breaks the style parser. */\n    :host ::ng-deep .rte-chip{\n      border:1px dashed var(--rhc-color-border-default);border-radius:var(--rhc-border-radius-sm);\n      padding:0 0.3em;white-space:nowrap;\n    }\n    :host ::ng-deep .rte-chip[data-auto='true']{background:var(--rhc-color-cool-grey-100)}\n    :host ::ng-deep .rte-chip[data-auto='false']{background:var(--rhc-color-geel-100)}\n    :host ::ng-deep .rte-chip::before{content:'\\\\7B';opacity:0.6;font-weight:700;margin-inline-end:0.1em}\n    :host ::ng-deep .rte-chip::after{content:'\\\\7D';opacity:0.6;font-weight:700;margin-inline-start:0.1em}\n  `],\n  template: `\n    @if (editable()) {\n      <div class=\"rte-toolbar\" role=\"toolbar\" [attr.aria-label]=\"toolbarLabel()\">\n        <button type=\"button\" class=\"btn btn-outline-secondary btn-sm\" (mousedown)=\"$event.preventDefault()\" (click)=\"format('bold')\" [attr.aria-label]=\"boldLabel()\"><b>B</b></button>\n        <button type=\"button\" class=\"btn btn-outline-secondary btn-sm\" (mousedown)=\"$event.preventDefault()\" (click)=\"format('italic')\" [attr.aria-label]=\"italicLabel()\"><i>I</i></button>\n        <button type=\"button\" class=\"btn btn-outline-secondary btn-sm\" (mousedown)=\"$event.preventDefault()\" (click)=\"format('underline')\" [attr.aria-label]=\"underlineLabel()\"><u>U</u></button>\n        <span class=\"rte-sep\" aria-hidden=\"true\"></span>\n        <button type=\"button\" class=\"btn btn-outline-secondary btn-sm\" (mousedown)=\"$event.preventDefault()\" (click)=\"list('bullet')\" [attr.aria-label]=\"bulletListLabel()\">•</button>\n        <button type=\"button\" class=\"btn btn-outline-secondary btn-sm\" (mousedown)=\"$event.preventDefault()\" (click)=\"list('number')\" [attr.aria-label]=\"numberListLabel()\">1.</button>\n        @if (placeholders().length) {\n          <span class=\"rte-sep\" aria-hidden=\"true\"></span>\n          <label>\n            <span class=\"app-text-subtle\">{{ insertLabel() }}</span>\n            <select #ins (change)=\"insert(ins.value); ins.value = ''\">\n              <option value=\"\" selected>{{ insertPrompt() }}</option>\n              @for (p of placeholders(); track p.key) {\n                <option [value]=\"p.key\">{{ p.label }}</option>\n              }\n            </select>\n          </label>\n        }\n      </div>\n    }\n    <div #editor class=\"rte-editable\" [attr.contenteditable]=\"editable()\" (input)=\"emit()\" (keydown)=\"onKeydown($event)\"\n         role=\"textbox\" aria-multiline=\"true\" [attr.aria-label]=\"fieldLabel()\"></div>\n  `,\n})\nexport class RichTextEditorComponent {\n  content = input<RichTextBlock>(emptyBlock());\n  placeholders = input<readonly PlaceholderOption[]>([]);\n  editable = input(true);\n  contentChanged = output<RichTextBlock>();\n\n  // Localizable-by-default copy (shared-UI convention).\n  fieldLabel = input($localize`:@@richTextEditor.field:Tekst`);\n  toolbarLabel = input($localize`:@@richTextEditor.toolbar:Opmaak`);\n  boldLabel = input($localize`:@@richTextEditor.bold:Vet`);\n  italicLabel = input($localize`:@@richTextEditor.italic:Cursief`);\n  underlineLabel = input($localize`:@@richTextEditor.underline:Onderstreept`);\n  insertLabel = input($localize`:@@richTextEditor.insert:Veld invoegen:`);\n  insertPrompt = input($localize`:@@richTextEditor.insertPrompt:Kies…`);\n  bulletListLabel = input($localize`:@@richTextEditor.bulletList:Opsomming`);\n  numberListLabel = input($localize`:@@richTextEditor.numberList:Genummerde lijst`);\n\n  private editorEl = viewChild<ElementRef<HTMLElement>>('editor');\n  private lastEmitted = '';\n\n  private labelFor = (key: string) => this.placeholders().find((p) => p.key === key)?.label ?? key;\n  private autoFor = (key: string) => this.placeholders().find((p) => p.key === key)?.autoResolvable ?? false;\n\n  constructor() {\n    // Render when content arrives/changes from OUTSIDE. Skip our own emitted value\n    // flowing back (structural compare) so the caret isn't reset while typing.\n    effect(() => {\n      const content = this.content();\n      const el = this.editorEl()?.nativeElement;\n      if (!el) return;\n      const serialized = JSON.stringify(content);\n      if (serialized === this.lastEmitted) return;\n      renderInto(el, content, this.labelFor, this.autoFor);\n      this.lastEmitted = serialized;\n    });\n  }\n\n  protected emit() {\n    const el = this.editorEl()?.nativeElement;\n    if (!el) return;\n    const block = readBlock(el);\n    this.lastEmitted = JSON.stringify(block);\n    this.contentChanged.emit(block);\n  }\n\n  protected format(cmd: 'bold' | 'italic' | 'underline') {\n    const el = this.editorEl()?.nativeElement;\n    if (!el) return;\n    el.focus();\n    // ponytail: execCommand is deprecated but universally supported and zero-dependency;\n    // if a browser drops it, this component is the one place to swap in a range-based impl.\n    el.ownerDocument.execCommand(cmd);\n    this.emit();\n  }\n\n  /** Bullet / numbered lists via execCommand — same deprecated-but-universal path as\n      bold/italic (ponytail-noted on `format`); readBlock reads the resulting <ul>/<ol>. */\n  protected list(kind: 'bullet' | 'number') {\n    const el = this.editorEl()?.nativeElement;\n    if (!el) return;\n    el.focus();\n    el.ownerDocument.execCommand(kind === 'bullet' ? 'insertUnorderedList' : 'insertOrderedList');\n    this.emit();\n  }\n\n  /** Ctrl/Cmd+B/I/U → our format() (+ preventDefault) so serialization runs and behaviour\n      is consistent across browsers rather than relying on the native handler. */\n  protected onKeydown(e: KeyboardEvent) {\n    if (e.key === 'Backspace' || e.key === 'Delete') {\n      this.deleteAdjacentChip(e);\n      return;\n    }\n    if (!(e.ctrlKey || e.metaKey) || e.altKey) return;\n    const cmd = { b: 'bold', i: 'italic', u: 'underline' }[e.key.toLowerCase()] as 'bold' | 'italic' | 'underline' | undefined;\n    if (!cmd) return;\n    e.preventDefault();\n    this.format(cmd);\n  }\n\n  /** Backspace/Delete next to a contenteditable=false chip removes it ourselves —\n      browsers otherwise leave these atomic chips undeletable. Selections fall through. */\n  private deleteAdjacentChip(e: KeyboardEvent) {\n    const el = this.editorEl()?.nativeElement;\n    if (!el) return;\n    const sel = el.ownerDocument.getSelection();\n    if (!sel || !sel.isCollapsed || !sel.rangeCount) return;\n    const range = sel.getRangeAt(0);\n    if (!el.contains(range.startContainer)) return;\n    const chip = adjacentChip(range.startContainer, range.startOffset, e.key === 'Backspace' ? -1 : 1);\n    if (!chip) return;\n    e.preventDefault();\n    chip.remove();\n    this.emit();\n  }\n\n  protected insert(key: string) {\n    const el = this.editorEl()?.nativeElement;\n    if (!key || !el) return;\n    el.focus();\n    const chip = createChip(el.ownerDocument, key, this.labelFor(key), this.autoFor(key));\n    const sel = el.ownerDocument.getSelection();\n    if (sel && sel.rangeCount && el.contains(sel.anchorNode)) {\n      const range = sel.getRangeAt(0);\n      range.deleteContents();\n      range.insertNode(chip);\n      range.setStartAfter(chip);\n      range.collapse(true);\n      sel.removeAllRanges();\n      sel.addRange(range);\n    } else {\n      (el.lastElementChild ?? el).appendChild(chip);\n    }\n    this.emit();\n  }\n}\n",
            "properties": [
                {
                    "name": "autoResolvable",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 12,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "key",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 8,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 9,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>A menu entry for the insert-placeholder control — a plain {key,label}, so the\neditor stays domain-free (it never sees the brief&#39;s PlaceholderDef).</p>\n",
            "rawdescription": "\nA menu entry for the insert-placeholder control — a plain {key,label}, so the\neditor stays domain-free (it never sees the brief's PlaceholderDef).",
            "methods": [],
            "extends": []
        },
        {
            "name": "PolicyQuestionDto",
            "id": "interface-PolicyQuestionDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1446
                },
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1448
                },
                {
                    "name": "vraag",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1447
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "PolicyQuestionDto",
            "id": "interface-PolicyQuestionDto-03b724eabc3fb95affe36abb0bef921275f0c9eeefd35fab64dd906d4d76e5a38fe849098232c0aaeaf7dd32fa6c0a7b7f2a1bfbbf4c03de4a440f860b3c46e1-1",
            "file": "src/app/registratie/contracts/duo-diplomas.dto.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface DuoLookupDto {\n  diplomas: DuoDiplomaDto[];\n  handmatig: ManualDiplomaPolicyDto;\n}\n\nexport interface DuoDiplomaDto {\n  id: string;\n  naam: string;\n  instelling: string;\n  jaar: number;\n  beroep: string; // server-derived profession\n  policyQuestions: PolicyQuestionDto[]; // server-decided geldigheidsvragen\n}\n\nexport interface ManualDiplomaPolicyDto {\n  beroepen: string[]; // professions the user may declare for a manual diploma\n  policyQuestions: PolicyQuestionDto[]; // maximal set applied to a manual diploma\n}\n\nexport interface PolicyQuestionDto {\n  id: string;\n  vraag: string;\n  type: 'ja-nee' | 'tekst';\n}\n",
            "properties": [
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 35
                },
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "\"ja-nee\" | \"tekst\"",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 37
                },
                {
                    "name": "vraag",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 36
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": [],
            "isDuplicate": true,
            "duplicateId": 1,
            "duplicateName": "PolicyQuestionDto-1"
        },
        {
            "name": "PortalTask",
            "id": "interface-PortalTask-e2ec47648b64280fa4fd94b4eaee89246ecffd3a61445af27da0ceabf3d15e930edde33ead2e70732bb9fc2a42be434d45e188deb4d62b6d39553c8d8cca458e",
            "file": "src/app/registratie/domain/tasks.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Registration } from './registration';\nimport { herregistratieDeadline } from './registration.policy';\n\n/**\n * What the dashboard's \"Wat moet ik regelen\" list needs. Pure presentation data\n * derived from the registration — no Angular. Mirrors the shared TaskItem shape.\n */\nexport interface PortalTask {\n  title: string;\n  description: string;\n  to: string;\n  actionLabel: string;\n}\n\nfunction formatNL(d: Date): string {\n  return d.toLocaleDateString('nl-NL', { day: 'numeric', month: 'long', year: 'numeric' });\n}\n\n/**\n * Derive the open tasks for a professional (pure). Eligibility is the server's\n * decision (`decisions.eligibleForHerregistratie`), passed in — the FE renders it,\n * it does not recompute the rule (ADR-0001). The deadline is still formatted\n * client-side for the task copy (presentation, not a rule).\n */\nexport function tasksFromProfile(reg: Registration, eligibleForHerregistratie: boolean): PortalTask[] {\n  const tasks: PortalTask[] = [];\n\n  if (eligibleForHerregistratie) {\n    const deadline = herregistratieDeadline(reg);\n    tasks.push({\n      title: $localize`:@@task.herregistratie.title:Vraag uw herregistratie aan`,\n      description: deadline\n        ? $localize`:@@task.herregistratie.deadline:Verleng uw registratie vóór ${formatNL(deadline)}:deadline:.`\n        : $localize`:@@task.herregistratie.nodeadline:U kunt nu uw herregistratie aanvragen.`,\n      to: '/herregistratie',\n      actionLabel: $localize`:@@task.herregistratie.action:Herregistratie aanvragen`,\n    });\n  }\n\n  if (reg.status.tag === 'Geschorst') {\n    tasks.push({\n      title: $localize`:@@task.geschorst.title:Uw registratie is geschorst`,\n      description: reg.status.reden,\n      to: '/registratie',\n      actionLabel: $localize`:@@task.bekijkGegevens.action:Bekijk uw gegevens`,\n    });\n  }\n\n  if (reg.status.tag === 'Doorgehaald') {\n    tasks.push({\n      title: $localize`:@@task.doorgehaald.title:Uw registratie is doorgehaald`,\n      description: reg.status.reden,\n      to: '/registratie',\n      actionLabel: $localize`:@@task.bekijkGegevens.action:Bekijk uw gegevens`,\n    });\n  }\n\n  return tasks;\n}\n",
            "properties": [
                {
                    "name": "actionLabel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 12
                },
                {
                    "name": "description",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 10
                },
                {
                    "name": "title",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 9
                },
                {
                    "name": "to",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 11
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>What the dashboard&#39;s &quot;Wat moet ik regelen&quot; list needs. Pure presentation data\nderived from the registration — no Angular. Mirrors the shared TaskItem shape.</p>\n",
            "rawdescription": "\n\nWhat the dashboard's \"Wat moet ik regelen\" list needs. Pure presentation data\nderived from the registration — no Angular. Mirrors the shared TaskItem shape.\n",
            "methods": [],
            "extends": []
        },
        {
            "name": "ProblemDetails",
            "id": "interface-ProblemDetails-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "detail",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1455
                },
                {
                    "name": "instance",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1456
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1454
                },
                {
                    "name": "title",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1453
                },
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1452
                }
            ],
            "indexSignatures": [
                {
                    "id": "index-declaration-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
                    "args": [
                        {
                            "name": "key",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "any",
                    "line": 1456,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "kind": 182,
            "methods": [],
            "extends": []
        },
        {
            "name": "RadioOption",
            "id": "interface-RadioOption-1dcd85f150fd82e56b3bc34cfc0a6b05687fdfdebf1ee0471bd5b01789b7783c430dc4c7c0685110aa2cf9a46c7b0e484faef78deaf3f79a13285942f89dd6dc",
            "file": "src/app/shared/ui/radio-group/radio-group.component.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Component, forwardRef, input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport interface RadioOption {\n  value: string;\n  label: string;\n}\n\n/** The ubiquitous yes/no option pair. Language-agnostic now the labels are\n    localized, so it lives next to RadioOption and both wizards import it. */\nexport const JA_NEE: RadioOption[] = [\n  { value: 'ja', label: $localize`:@@common.ja:Ja` },\n  { value: 'nee', label: $localize`:@@common.nee:Nee` },\n];\n\n/** Atom: a radio group. Thin wrapper over the CIBG Huisstijl `.form-check.styled`\n    radio CSS, wired as a form control so it works with ngModel just like the\n    text-input atom. */\n@Component({\n  selector: 'app-radio-group',\n  template: `\n    <div\n      role=\"radiogroup\"\n      [attr.aria-labelledby]=\"name() + '-label'\"\n      [attr.aria-invalid]=\"invalid() ? 'true' : null\"\n      [attr.aria-describedby]=\"invalid() ? name() + '-error' : null\">\n      @for (opt of options(); track opt.value) {\n        <div class=\"form-check styled\">\n          <input\n            class=\"form-check-input\"\n            [class.is-invalid]=\"invalid()\"\n            type=\"radio\"\n            [id]=\"name() + '-' + opt.value\"\n            [name]=\"name()\"\n            [value]=\"opt.value\"\n            [checked]=\"value === opt.value\"\n            [disabled]=\"disabled\"\n            (change)=\"select(opt.value)\"\n            (blur)=\"onTouched()\" />\n          <label class=\"form-check-label\" [for]=\"name() + '-' + opt.value\">{{ opt.label }}</label>\n        </div>\n      }\n    </div>\n  `,\n  providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RadioGroupComponent), multi: true }],\n})\nexport class RadioGroupComponent implements ControlValueAccessor {\n  options = input.required<RadioOption[]>();\n  name = input.required<string>();\n  invalid = input(false);\n\n  value = '';\n  disabled = false;\n  onChange: (v: string) => void = () => {};\n  onTouched: () => void = () => {};\n\n  select(v: string) {\n    this.value = v;\n    this.onChange(v);\n  }\n  writeValue(v: string) { this.value = v ?? ''; }\n  registerOnChange(fn: (v: string) => void) { this.onChange = fn; }\n  registerOnTouched(fn: () => void) { this.onTouched = fn; }\n  setDisabledState(d: boolean) { this.disabled = d; }\n}\n",
            "properties": [
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 6
                },
                {
                    "name": "value",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 5
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "ReferentieResponse",
            "id": "interface-ReferentieResponse-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "referentie",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1462
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "RegistratieRequest",
            "id": "interface-RegistratieRequest-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "diplomaHerkomst",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1466
                },
                {
                    "name": "documents",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DocumentRefDto[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1467
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "Registration",
            "id": "interface-Registration-8e28c6bf4ec154e4db100e2ec1ee19fe9c2d50bc429733f8288f32277ce91963f67ec0363028632e71cfb7e05ce25001908c8dd8ee66d732632d67b993c0645b",
            "file": "src/app/registratie/domain/registration.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export type RegistrationStatus =\n  | { tag: 'Geregistreerd'; herregistratieDatum: string } // ISO date\n  | { tag: 'Geschorst'; geschorstTot: string; reden: string }\n  | { tag: 'Doorgehaald'; doorgehaaldOp: string; reden: string };\n\n/** Just the discriminant — for atoms that only need the label/color. */\nexport type StatusTag = RegistrationStatus['tag'];\n\nexport interface Registration {\n  bigNummer: string;\n  naam: string;\n  beroep: string; // arts, verpleegkundige, apotheker, ...\n  registratiedatum: string; // ISO date\n  geboortedatum: string;\n  status: RegistrationStatus;\n}\n\n/** A note is either a recognised specialism or a plain annotation — a closed set,\n    not an open string, so a typo can't slip through. */\nexport type AantekeningType = 'Specialisme' | 'Aantekening';\n\nexport interface Aantekening {\n  type: AantekeningType;\n  omschrijving: string;\n  datum: string;\n}\n",
            "properties": [
                {
                    "name": "beroep",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 19
                },
                {
                    "name": "bigNummer",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 17
                },
                {
                    "name": "geboortedatum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 21
                },
                {
                    "name": "naam",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 18
                },
                {
                    "name": "registratiedatum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 20
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RegistrationStatus",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "RegistrationDto",
            "id": "interface-RegistrationDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "beroep",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1473
                },
                {
                    "name": "bigNummer",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1471
                },
                {
                    "name": "geboortedatum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1475
                },
                {
                    "name": "naam",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1472
                },
                {
                    "name": "registratiedatum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1474
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RegistrationStatusDto",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1476
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "RegistrationDto",
            "id": "interface-RegistrationDto-10d81af9017230c2e0704c882140be892d1e2a8d6343f8d169bcdb8e99516bc135a9b17faf4ea0fb5d4da561476db228b7f2dab7d27e4c262acdecbe1b7f6241-1",
            "file": "src/app/registratie/contracts/dashboard-view.dto.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export type RegistrationStatusDto =\n  | { tag: 'Geregistreerd'; herregistratieDatum: string } // ISO date\n  | { tag: 'Geschorst'; geschorstTot: string; reden: string }\n  | { tag: 'Doorgehaald'; doorgehaaldOp: string; reden: string };\n\nexport interface RegistrationDto {\n  bigNummer: string;\n  naam: string;\n  beroep: string;\n  registratiedatum: string; // ISO date\n  geboortedatum: string;\n  status: RegistrationStatusDto;\n}\n\nexport interface AdresDto {\n  straat: string;\n  postcode: string;\n  woonplaats: string;\n}\n\nexport interface PersonDto {\n  naam: string;\n  geboortedatum: string; // ISO date\n  adres: AdresDto;\n}\n\n/** Server-computed decisions. Rendered by the FE as-is (decision DTO, ADR-0001):\n    the eligibility rule lives on the backend; the optional reason lets the UI\n    explain itself without knowing the rule. */\nexport interface HerregistratieDecisions {\n  eligibleForHerregistratie: boolean;\n  herregistratieReason?: string;\n}\n\nexport interface DashboardViewDto {\n  registration: RegistrationDto;\n  person: PersonDto;\n  decisions: HerregistratieDecisions;\n}\n",
            "properties": [
                {
                    "name": "beroep",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 29
                },
                {
                    "name": "bigNummer",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 27
                },
                {
                    "name": "geboortedatum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 31
                },
                {
                    "name": "naam",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 28
                },
                {
                    "name": "registratiedatum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 30
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RegistrationStatusDto",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 32
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": [],
            "isDuplicate": true,
            "duplicateId": 1,
            "duplicateName": "RegistrationDto-1"
        },
        {
            "name": "RegistrationStatusDto",
            "id": "interface-RegistrationStatusDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "doorgehaaldOp",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1484
                },
                {
                    "name": "geschorstTot",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1482
                },
                {
                    "name": "herregistratieDatum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1481
                },
                {
                    "name": "reden",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1483
                },
                {
                    "name": "tag",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1480
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "RejectBriefRequest",
            "id": "interface-RejectBriefRequest-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "comments",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1488
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "RichTextBlock",
            "id": "interface-RichTextBlock-c2d889eaa693df9c04ea212ab04e3ecf791f72b27c8dbf611134586bea92876ed6887499f9c8e58c49023b46f7373f68901d75b46539efc375fbb84f97d79aa2",
            "file": "src/app/shared/kernel/rich-text.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export type Mark = 'bold' | 'italic' | 'underline';\n\nexport type RichTextNode =\n  | { readonly type: 'text'; readonly text: string; readonly marks?: readonly Mark[] }\n  | { readonly type: 'placeholder'; readonly key: string } // resolved to a value at send\n  | { readonly type: 'lineBreak' };\n\nexport interface Paragraph {\n  readonly nodes: readonly RichTextNode[];\n  // A line can be a plain paragraph (undefined) or an item in a bullet/numbered list.\n  // Consecutive lines with the same list kind render as one <ul>/<ol>.\n  readonly list?: 'bullet' | 'number';\n}\n\nexport interface RichTextBlock {\n  readonly paragraphs: readonly Paragraph[];\n}\n\n/** An empty editable block is one empty paragraph — never zero paragraphs, so the\n    editor always has a caret line. */\nexport function emptyBlock(): RichTextBlock {\n  return { paragraphs: [{ nodes: [] }] };\n}\n\n/** True when the block carries no visible content (used for \"required section empty\"). */\nexport function isBlockEmpty(block: RichTextBlock): boolean {\n  return block.paragraphs.every((p) =>\n    p.nodes.every((n) => (n.type === 'text' ? n.text.trim() === '' : false)),\n  );\n}\n\n/** The frozen-snapshot primitive: a deep VALUE copy of a block. Inserting a library\n    passage into a letter copies its tree through here, so the letter never shares a\n    reference with the library — later library edits can't mutate an existing letter. */\nexport function deepCopyBlock(block: RichTextBlock): RichTextBlock {\n  // ponytail: structuredClone is exactly a deep value copy of a JSON-shaped tree;\n  // a hand-rolled walk would be more code for the same result.\n  return structuredClone(block) as RichTextBlock;\n}\n\n/** Every placeholder key used in a block, in document order (duplicates kept — the\n    caller dedupes when it wants a set). */\nexport function placeholderKeysIn(block: RichTextBlock): string[] {\n  const keys: string[] = [];\n  for (const p of block.paragraphs) {\n    for (const n of p.nodes) {\n      if (n.type === 'placeholder') keys.push(n.key);\n    }\n  }\n  return keys;\n}\n",
            "properties": [
                {
                    "name": "paragraphs",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 27,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "RichTextBlockDto",
            "id": "interface-RichTextBlockDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "paragraphs",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ParagraphDto[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1492
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "RichTextNodeDto",
            "id": "interface-RichTextNodeDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "key",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1499
                },
                {
                    "name": "marks",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1498
                },
                {
                    "name": "text",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1497
                },
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1496
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "SaveBriefRequest",
            "id": "interface-SaveBriefRequest-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "sections",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LetterSectionDto[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1503
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "Session",
            "id": "interface-Session-4f483129ecb1f3747a600d06904b954a4950b10c4da782d9635896d2c39feaa7777d0e9ed018efa5d4252fd44a29035a431e7dcc15ec19c903f710b163e162f2",
            "file": "src/app/auth/domain/session.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface Session {\n  readonly bsn: string;\n  readonly naam: string;\n}\n\nexport function isAuthenticated(s: Session | null): s is Session {\n  return s !== null;\n}\n",
            "properties": [
                {
                    "name": "bsn",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 3,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "naam",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 4,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>Who is logged in. Framework-free domain type.</p>\n",
            "rawdescription": "\nWho is logged in. Framework-free domain type.",
            "methods": [],
            "extends": []
        },
        {
            "name": "SessionPort",
            "id": "interface-SessionPort-b7e5164e08b624cba74c620b09293f05c3bbaa75eeed03e9cc66f5ea5d87f1d9e4e51a4a7f43d648f5bb2a5a51f58b8f5880929eab6cc03156cef468fdda90dc",
            "file": "src/app/shared/application/session.port.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { InjectionToken, Signal } from '@angular/core';\n\n/**\n * A shared seam for the chrome to show \"who is logged in\" + log out, WITHOUT\n * shared/ depending on the auth context (the import-direction rule forbids that).\n * Auth provides this token at the app root (see app.config.ts); the shared header\n * injects it. SessionStore satisfies this shape structurally.\n */\nexport interface SessionPort {\n  readonly session: Signal<{ naam: string } | null>;\n  logout(): void;\n}\n\nexport const SESSION_PORT = new InjectionToken<SessionPort>('SESSION_PORT');\n",
            "properties": [
                {
                    "name": "session",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Signal<literal type | null>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 10,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 174,
            "description": "<p>A shared seam for the chrome to show &quot;who is logged in&quot; + log out, WITHOUT\nshared/ depending on the auth context (the import-direction rule forbids that).\nAuth provides this token at the app root (see app.config.ts); the shared header\ninjects it. SessionStore satisfies this shape structurally.</p>\n",
            "rawdescription": "\n\nA shared seam for the chrome to show \"who is logged in\" + log out, WITHOUT\nshared/ depending on the auth context (the import-direction rule forbids that).\nAuth provides this token at the app root (see app.config.ts); the shared header\ninjects it. SessionStore satisfies this shape structurally.\n",
            "methods": [
                {
                    "name": "logout",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 11,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "extends": []
        },
        {
            "name": "StatusItem",
            "id": "interface-StatusItem-5fab28e6a8d389767caddf0e34edcd3013f54e6fdf3e82341e2ed7e9ef1035fa5a5338c98630c1de1e65329cdd6d40d726b1885c5c3ee4eff5a462ea3e81fcd7",
            "file": "src/app/shared/upload/upload.adapter.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Injectable, computed, inject, resource } from '@angular/core';\nimport {\n  ApiClient,\n  DocumentCategoryDto,\n  UploadStatusItemDto,\n} from '@shared/infrastructure/api-client';\nimport { problemDetail } from '@shared/infrastructure/api-error';\nimport { currentScenario } from '@shared/infrastructure/scenario';\nimport { environment } from '../../../environments/environment';\nimport { DocumentCategory } from './upload.machine';\n\n/** Answer-derived query params that affect which categories the server presents. */\nexport interface CategoryParams {\n  diplomaHerkomst?: string;\n  taalvaardigheid?: string;\n}\n\n/** One arrived/known status item from poll-on-return. */\nexport interface StatusItem {\n  localId: string;\n  status: string; // 'complete' | 'unknown'\n  documentId?: string;\n}\n\nexport interface XhrUploadRequest {\n  localId: string;\n  categoryId: string;\n  wizardId: string;\n  file: File;\n}\n\n/** A live upload: progress is reported via the callback; cancel aborts the XHR. */\nexport interface XhrUploadHandle {\n  done: Promise<{ documentId: string }>;\n  cancel: () => void;\n}\n\n/** Sentinel rejection so the caller can tell a user-cancel from a real failure. */\nexport const UPLOAD_ABORTED = Symbol('upload-aborted');\n\n/**\n * Infrastructure: the only place upload HTTP lives. Reads (categories, status,\n * delete) go through the NSwag client; the multipart POST is hand-written XHR\n * because the generated client is JSON-only (the endpoint is ExcludeFromDescription)\n * and we need upload-progress events + cancellation, which fetch can't give us.\n */\n@Injectable({ providedIn: 'root' })\nexport class UploadAdapter {\n  private client = inject(ApiClient);\n\n  /** Categories are server-owned; some depend on answers (e.g. registratie's diploma\n      set varies by DUO/handmatig + course language). `extra` makes the resource reactive\n      so it re-fetches when those answers change. */\n  categoriesResource(wizardId: string, extra?: () => CategoryParams) {\n    // Structural equality so we re-fetch only when a category-affecting answer changes,\n    // not on every unrelated draft edit (a computed with `equal` returns the cached\n    // reference while equal, so the resource sees no change).\n    const params = computed(\n      () => ({ wizardId, diplomaHerkomst: extra?.().diplomaHerkomst, taalvaardigheid: extra?.().taalvaardigheid }),\n      { equal: (a, b) => a.wizardId === b.wizardId && a.diplomaHerkomst === b.diplomaHerkomst && a.taalvaardigheid === b.taalvaardigheid },\n    );\n    return resource({\n      params,\n      loader: ({ params }) =>\n        this.client.categories(params.wizardId, params.diplomaHerkomst, params.taalvaardigheid).then((r) => (r.categories ?? []).map(toCategory)),\n    });\n  }\n\n  /** Poll-on-return: which client localIds have arrived at the BFF. */\n  status(localIds: string[]): Promise<StatusItem[]> {\n    if (localIds.length === 0) return Promise.resolve([]);\n    return this.client.status(localIds.join(',')).then((r) => (r.results ?? []).map(toStatusItem));\n  }\n\n  /** User delete; throws a ProblemDetails (e.g. 409 once linked) the caller maps. */\n  deleteDocument(documentId: string): Promise<void> {\n    return this.client.uploads(documentId);\n  }\n\n  /**\n   * Direct URL to the stored bytes, for a preview/download link (`<a href>`) — the\n   * server serves it inline for pdf/image, attachment otherwise. Not a fetch: the\n   * browser opens it. demo-* ids (dev simulation) have no bytes and 404 here.\n   */\n  contentUrl(documentId: string): string {\n    return `${environment.apiBaseUrl}/api/v1/uploads/${documentId}/content`;\n  }\n\n  /**\n   * Multipart upload with progress + cancel. ponytail: XHR (not fetch keepalive) —\n   * progress events need XHR; the keepalive/background gap is covered by\n   * poll-on-return (UploadShellService.pollReturning). Swap in a Service Worker\n   * transport behind UploadTransport for true background sync.\n   */\n  xhrUpload(req: XhrUploadRequest, onProgress: (pct: number) => void): XhrUploadHandle {\n    const scenario = currentScenario();\n    if (scenario === 'upload-slow' || scenario === 'upload-fail') return simulateUpload(scenario, onProgress);\n\n    const xhr = new XMLHttpRequest();\n    const form = new FormData();\n    form.append('file', req.file);\n    form.append('categoryId', req.categoryId);\n    form.append('localId', req.localId);\n    form.append('wizardId', req.wizardId);\n\n    let aborted = false;\n    const done = new Promise<{ documentId: string }>((resolve, reject) => {\n      xhr.upload.addEventListener('progress', (e) => {\n        if (e.lengthComputable) onProgress(Math.round((e.loaded / e.total) * 100));\n      });\n      xhr.addEventListener('load', () => {\n        if (xhr.status >= 200 && xhr.status < 300) {\n          try {\n            resolve({ documentId: JSON.parse(xhr.responseText).documentId });\n          } catch {\n            reject(genericError());\n          }\n        } else {\n          reject(parseError(xhr.responseText));\n        }\n      });\n      xhr.addEventListener('error', () => reject(genericError()));\n      xhr.addEventListener('abort', () => (aborted ? reject(UPLOAD_ABORTED) : reject(genericError())));\n    });\n\n    xhr.open('POST', `${environment.apiBaseUrl}/api/v1/uploads`);\n    xhr.send(form);\n    return { done, cancel: () => ((aborted = true), xhr.abort()) };\n  }\n}\n\nconst UPLOAD_FAILED = $localize`:@@upload.failed:Uploaden is niet gelukt. Probeer het opnieuw.`;\nconst genericError = (): string => UPLOAD_FAILED;\n\n/**\n * Demo-only (dev): the real XHR POST finishes instantly for metadata, so progress\n * and failure can't otherwise be shown. Drives the progress bar over ~2.5s, then\n * succeeds (`upload-slow`) or fails (`upload-fail`). ponytail: timer-based, cancel\n * via the returned handle; no network.\n */\nfunction simulateUpload(scenario: 'upload-slow' | 'upload-fail', onProgress: (pct: number) => void): XhrUploadHandle {\n  let pct = 0;\n  let cancelled = false;\n  const done = new Promise<{ documentId: string }>((resolve, reject) => {\n    const tick = () => {\n      if (cancelled) {\n        reject(UPLOAD_ABORTED);\n      } else if (pct < 100) {\n        pct += 10;\n        onProgress(Math.min(pct, 100));\n        setTimeout(tick, 250);\n      } else if (scenario === 'upload-fail') {\n        reject(UPLOAD_FAILED);\n      } else {\n        resolve({ documentId: `demo-${crypto.randomUUID()}` });\n      }\n    };\n    setTimeout(tick, 250);\n  });\n  return { done, cancel: () => void (cancelled = true) };\n}\nconst parseError = (body: string): string => {\n  try {\n    return problemDetail(JSON.parse(body), UPLOAD_FAILED);\n  } catch {\n    return genericError();\n  }\n};\n\n/** Wire DTO (all fields optional) → domain. */\nfunction toCategory(c: DocumentCategoryDto): DocumentCategory {\n  return {\n    categoryId: c.categoryId ?? '',\n    label: c.label ?? '',\n    description: c.description ?? '',\n    required: c.required ?? false,\n    acceptedTypes: c.acceptedTypes ?? [],\n    maxSizeMb: c.maxSizeMb ?? 0,\n    multiple: c.multiple ?? false,\n    allowPostDelivery: c.allowPostDelivery ?? false,\n  };\n}\n\nfunction toStatusItem(s: UploadStatusItemDto): StatusItem {\n  return { localId: s.localId ?? '', status: s.status ?? 'unknown', documentId: s.documentId ?? undefined };\n}\n",
            "properties": [
                {
                    "name": "documentId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "localId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 20
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 21
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>One arrived/known status item from poll-on-return.</p>\n",
            "rawdescription": "\nOne arrived/known status item from poll-on-return.",
            "methods": [],
            "extends": []
        },
        {
            "name": "Store",
            "id": "interface-Store-a37705502ee39f3c0f29e4d6e9d75da640c8cbb0fcb82100a1baddfda3a85596b08019b398ef1a18152e1de16af4828538d42a8d93886e0509d7a17caaaa4233",
            "file": "src/app/shared/application/store.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Signal, signal } from '@angular/core';\n\n/**\n * A tiny \"Elm-style\" store. The whole idea: all state lives in ONE value\n * (the Model). The only way to change it is to send a message (Msg) to a PURE\n * function `update(model, msg)` that returns the next Model. Nothing else\n * mutates state, so to understand the app you only read the update function.\n *\n * Side effects (HTTP, timers) do NOT go in `update` — that stays pure and easy\n * to test. Instead, effectful \"command\" functions call the network and then\n * `dispatch` a message describing what happened (e.g. Loaded / Failed).\n */\nexport interface Store<Model, Msg> {\n  /** The current state, as a read-only Angular signal. */\n  readonly model: Signal<Model>;\n  /** Send a message; the model becomes update(model, msg). */\n  dispatch(msg: Msg): void;\n}\n\nexport function createStore<Model, Msg>(\n  init: Model,\n  update: (model: Model, msg: Msg) => Model,\n): Store<Model, Msg> {\n  const model = signal(init);\n  return {\n    model: model.asReadonly(),\n    // Use `.update` (raw current value, no tracked read) not `set(update(model(), …))`:\n    // dispatch is a command and must never subscribe its caller to `model`. Reading\n    // `model()` here inside an effect that also dispatches makes the effect depend on\n    // its own write and livelock the main thread (crashed the upload wizards).\n    dispatch: (msg) => model.update((m) => update(m, msg)),\n  };\n}\n",
            "properties": [
                {
                    "name": "model",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Signal<Model>",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The current state, as a read-only Angular signal.</p>\n",
                    "line": 15,
                    "rawdescription": "\nThe current state, as a read-only Angular signal.",
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 174,
            "description": "<p>A tiny &quot;Elm-style&quot; store. The whole idea: all state lives in ONE value\n(the Model). The only way to change it is to send a message (Msg) to a PURE\nfunction <code>update(model, msg)</code> that returns the next Model. Nothing else\nmutates state, so to understand the app you only read the update function.</p>\n<p>Side effects (HTTP, timers) do NOT go in <code>update</code> — that stays pure and easy\nto test. Instead, effectful &quot;command&quot; functions call the network and then\n<code>dispatch</code> a message describing what happened (e.g. Loaded / Failed).</p>\n",
            "rawdescription": "\n\nA tiny \"Elm-style\" store. The whole idea: all state lives in ONE value\n(the Model). The only way to change it is to send a message (Msg) to a PURE\nfunction `update(model, msg)` that returns the next Model. Nothing else\nmutates state, so to understand the app you only read the update function.\n\nSide effects (HTTP, timers) do NOT go in `update` — that stays pure and easy\nto test. Instead, effectful \"command\" functions call the network and then\n`dispatch` a message describing what happened (e.g. Loaded / Failed).\n",
            "methods": [
                {
                    "name": "dispatch",
                    "args": [
                        {
                            "name": "msg",
                            "type": "Msg",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 17,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nSend a message; the model becomes update(model, msg).",
                    "description": "<p>Send a message; the model becomes update(model, msg).</p>\n",
                    "jsdoctags": [
                        {
                            "name": "msg",
                            "type": "Msg",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "extends": []
        },
        {
            "name": "SubmitApplicationRequest",
            "id": "interface-SubmitApplicationRequest-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "diplomaHerkomst",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1507
                },
                {
                    "name": "documents",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DocumentRefDto[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1509
                },
                {
                    "name": "uren",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1508
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "SubmitApplicationResponse",
            "id": "interface-SubmitApplicationResponse-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "referentie",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1513
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AanvraagStatusDto",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1514
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "TaskItem",
            "id": "interface-TaskItem-4fb24202833aea5820947773c19b1f6e6bb7eef7916dd8ba1fbdb2045528251598341c50fd24d2f15600992e5eb6051fbb4beb891e240bdb83b36f9e972f9d0a",
            "file": "src/app/shared/ui/task-list/task-list.component.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Component, input } from '@angular/core';\nimport { ChoiceListComponent } from '@shared/ui/choice-list/choice-list.component';\nimport { ChoiceLinkComponent } from '@shared/ui/choice-link/choice-link.component';\n\n/** Presentational task shape — what \"Wat moet ik regelen\" renders. Domain-free so\n    shared/ stays independent of any context (a context's task type that has these\n    fields is structurally assignable). */\nexport interface TaskItem {\n  readonly title: string;\n  readonly description: string;\n  readonly to: string;\n  readonly actionLabel: string;\n}\n\n/** Molecule: the \"Wat moet ik regelen\" action list (NL Design System \"Mijn\n    omgeving\" pattern), rendered as a CIBG Huisstijl \"keuzelijst\" — each task is a\n    choice the user picks to resolve it. `actionLabel` has no keuzelijst equivalent\n    (the whole row is the action; the chevron already implies \"ga verder\"). */\n@Component({\n  selector: 'app-task-list',\n  imports: [ChoiceListComponent, ChoiceLinkComponent],\n  template: `\n    <app-choice-list [heading]=\"listHeading()\">\n      @for (t of tasks(); track t.title) {\n        <app-choice-link [heading]=\"t.title\" [instructions]=\"t.description\" [to]=\"t.to\" />\n      }\n    </app-choice-list>\n  `,\n})\nexport class TaskListComponent {\n  listHeading = input.required<string>();\n  tasks = input.required<readonly TaskItem[]>();\n}\n",
            "properties": [
                {
                    "name": "actionLabel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 12,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "description",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 10,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "title",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 9,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "to",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 11,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>Presentational task shape — what &quot;Wat moet ik regelen&quot; renders. Domain-free so\nshared/ stays independent of any context (a context&#39;s task type that has these\nfields is structurally assignable).</p>\n",
            "rawdescription": "\nPresentational task shape — what \"Wat moet ik regelen\" renders. Domain-free so\nshared/ stays independent of any context (a context's task type that has these\nfields is structurally assignable).",
            "methods": [],
            "extends": []
        },
        {
            "name": "Upload",
            "id": "interface-Upload-a9d98fc612c255dd91f2cd2e1dfab2fbff1c2361f950c1fbd696c7075a6424d5bebf88230c1c3c0f9e463fada8809608c0e890549e98b7dd3e745b512ebeee6f",
            "file": "src/app/shared/upload/upload.machine.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { assertNever } from '@shared/kernel/fp';\n\n/**\n * Pure upload domain (no Angular). Reusable across wizards: the host wizard folds\n * `UploadState` into its Model and delegates upload `Msg`s to `reduceUpload`.\n * Illegal states are unrepresentable by construction; the few transitions a union\n * can't express (channel↔upload exclusivity, single-file categories) are enforced\n * here in the reducer. Effects live in the shell (upload-shell.service.ts).\n */\n\nexport type UploadStatus =\n  | { type: 'idle' }\n  | { type: 'queued' }\n  | { type: 'uploading'; progressPct: number }\n  | { type: 'complete'; documentId: string }\n  | { type: 'failed'; reason: string }\n  | { type: 'deleting'; documentId: string } // carries the id so a failed delete can revert\n  | { type: 'deleted' };\n\nexport interface Upload {\n  localId: string; // client-generated UUID; the sync tag / status key\n  categoryId: string;\n  fileName: string;\n  fileSizeMb: number;\n  status: UploadStatus;\n  backgroundSync: boolean;\n}\n\nexport type DeliveryChannel = 'digital' | 'post';\n\nexport interface DocumentCategory {\n  categoryId: string;\n  label: string;\n  description: string;\n  required: boolean;\n  acceptedTypes: string[];\n  maxSizeMb: number;\n  multiple: boolean;\n  allowPostDelivery: boolean;\n}\n\nexport interface UploadState {\n  categories: DocumentCategory[];\n  uploads: Upload[];\n  deliveryChannel: Record<string, DeliveryChannel>; // categoryId → channel; default 'digital'\n  rejections: Record<string, string>; // categoryId → client-side validation message (transient)\n  backgroundSyncAvailable: boolean;\n  categoriesError?: string;\n}\n\nexport const initialUpload: UploadState = {\n  categories: [],\n  uploads: [],\n  deliveryChannel: {},\n  rejections: {},\n  backgroundSyncAvailable: false,\n};\n\nexport type UploadMsg =\n  | { type: 'CategoriesLoaded'; categories: DocumentCategory[] }\n  | { type: 'CategoriesLoadFailed'; reason: string }\n  | { type: 'BackgroundSyncAvailability'; available: boolean }\n  | { type: 'FileSelected'; categoryId: string; localId: string; fileName: string; fileSizeMb: number }\n  | { type: 'FileRejected'; categoryId: string; reason: 'type' | 'size' | 'multiple' }\n  | { type: 'UploadQueued'; localId: string; backgroundSync: boolean }\n  | { type: 'UploadProgress'; localId: string; progressPct: number }\n  | { type: 'UploadComplete'; localId: string; documentId: string }\n  | { type: 'UploadFailed'; localId: string; reason: string }\n  | { type: 'UploadRetried'; localId: string }\n  | { type: 'UploadRemoved'; localId: string }\n  | { type: 'UploadDeleteRequested'; localId: string; documentId: string }\n  | { type: 'UploadDeleting'; localId: string }\n  | { type: 'UploadDeleteComplete'; localId: string }\n  | { type: 'UploadDeleteFailed'; localId: string; reason: string }\n  | { type: 'DeliveryChannelChanged'; categoryId: string; channel: DeliveryChannel }\n  | {\n      type: 'BackgroundUploadsReturned';\n      results: Array<{ localId: string } & ({ success: true; documentId: string } | { success: false; reason: string })>;\n    };\n\nconst REJECTION_MESSAGES: Record<'type' | 'size' | 'multiple', string> = {\n  type: $localize`:@@upload.reject.type:Dit bestandstype is niet toegestaan voor deze categorie.`,\n  size: $localize`:@@upload.reject.size:Dit bestand is te groot.`,\n  multiple: $localize`:@@upload.reject.multiple:U kunt voor deze categorie maar één bestand uploaden.`,\n};\n\nconst ACTIVE: ReadonlyArray<UploadStatus['type']> = ['queued', 'uploading', 'complete'];\n\n/** A required category is satisfied by an initiated upload OR a post-delivery choice. */\nexport function categorySatisfied(s: UploadState, categoryId: string): boolean {\n  if (s.deliveryChannel[categoryId] === 'post') return true;\n  return s.uploads.some((u) => u.categoryId === categoryId && ACTIVE.includes(u.status.type));\n}\n\nexport function requiredCategoriesSatisfied(s: UploadState): boolean {\n  return s.categories.filter((c) => c.required).every((c) => categorySatisfied(s, c.categoryId));\n}\n\n/**\n * FE format-validation (never authority — the server re-validates). Returns the\n * rejection reason for one file, or null if it passes the category's type/size.\n */\nexport function rejectReason(cat: DocumentCategory, file: { type: string; sizeMb: number }): 'type' | 'size' | null {\n  if (cat.acceptedTypes.length > 0 && !cat.acceptedTypes.includes(file.type)) return 'type';\n  if (cat.maxSizeMb > 0 && file.sizeMb > cat.maxSizeMb) return 'size';\n  return null;\n}\n\n/** Map one upload's status, leaving the rest of the list untouched. */\nfunction mapUpload(s: UploadState, localId: string, f: (u: Upload) => Upload): UploadState {\n  return { ...s, uploads: s.uploads.map((u) => (u.localId === localId ? f(u) : u)) };\n}\n\nconst find = (s: UploadState, localId: string) => s.uploads.find((u) => u.localId === localId);\nconst categoryOf = (s: UploadState, categoryId: string) => s.categories.find((c) => c.categoryId === categoryId);\n\nexport function reduceUpload(s: UploadState, m: UploadMsg): UploadState {\n  switch (m.type) {\n    case 'CategoriesLoaded': {\n      // Categories can change with the answers (e.g. the diploma upload disappears once\n      // DUO is chosen). Drop uploads + channel choices for categories no longer present.\n      const ids = new Set(m.categories.map((c) => c.categoryId));\n      const deliveryChannel: Record<string, DeliveryChannel> = {};\n      for (const c of m.categories) deliveryChannel[c.categoryId] = s.deliveryChannel[c.categoryId] ?? 'digital';\n      const uploads = s.uploads.filter((u) => ids.has(u.categoryId));\n      return { ...s, categories: m.categories, uploads, deliveryChannel, categoriesError: undefined };\n    }\n    case 'CategoriesLoadFailed':\n      return { ...s, categoriesError: m.reason };\n    case 'BackgroundSyncAvailability':\n      return { ...s, backgroundSyncAvailable: m.available };\n\n    case 'FileSelected': {\n      // Reject at dispatch: unknown category, or a category set to post-delivery.\n      if (!categoryOf(s, m.categoryId) || s.deliveryChannel[m.categoryId] === 'post') return s;\n      const cat = categoryOf(s, m.categoryId)!;\n      // Single-file categories: a new selection replaces any existing upload.\n      const uploads = cat.multiple ? s.uploads : s.uploads.filter((u) => u.categoryId !== m.categoryId);\n      const next: Upload = {\n        localId: m.localId,\n        categoryId: m.categoryId,\n        fileName: m.fileName,\n        fileSizeMb: m.fileSizeMb,\n        status: { type: 'queued' },\n        backgroundSync: false,\n      };\n      const { [m.categoryId]: _cleared, ...rejections } = s.rejections;\n      return { ...s, uploads: [...uploads, next], rejections };\n    }\n    case 'FileRejected':\n      return { ...s, rejections: { ...s.rejections, [m.categoryId]: REJECTION_MESSAGES[m.reason] } };\n\n    case 'UploadQueued':\n      return mapUpload(s, m.localId, (u) => ({ ...u, status: { type: 'queued' }, backgroundSync: m.backgroundSync }));\n    case 'UploadProgress':\n      return mapUpload(s, m.localId, (u) => ({ ...u, status: { type: 'uploading', progressPct: m.progressPct } }));\n    case 'UploadComplete':\n      return mapUpload(s, m.localId, (u) => ({ ...u, status: { type: 'complete', documentId: m.documentId } }));\n    case 'UploadFailed':\n      return mapUpload(s, m.localId, (u) => ({ ...u, status: { type: 'failed', reason: m.reason } }));\n    case 'UploadRetried':\n      return mapUpload(s, m.localId, (u) => ({ ...u, status: { type: 'queued' } }));\n\n    case 'UploadRemoved':\n      return { ...s, uploads: s.uploads.filter((u) => u.localId !== m.localId) };\n\n    case 'UploadDeleteRequested':\n    case 'UploadDeleting':\n      // Both mark the in-flight delete; keep the documentId so a failure can revert.\n      return mapUpload(s, m.localId, (u) => {\n        const documentId = u.status.type === 'complete' ? u.status.documentId\n          : u.status.type === 'deleting' ? u.status.documentId : '';\n        return { ...u, status: { type: 'deleting', documentId } };\n      });\n    case 'UploadDeleteComplete':\n      return { ...s, uploads: s.uploads.filter((u) => u.localId !== m.localId) };\n    case 'UploadDeleteFailed':\n      return mapUpload(s, m.localId, (u) =>\n        u.status.type === 'deleting' ? { ...u, status: { type: 'complete', documentId: u.status.documentId } } : u);\n\n    case 'DeliveryChannelChanged': {\n      const cat = categoryOf(s, m.categoryId);\n      // Reject post for a category that doesn't permit it.\n      if (m.channel === 'post' && (!cat || !cat.allowPostDelivery)) return s;\n      const deliveryChannel = { ...s.deliveryChannel, [m.categoryId]: m.channel };\n      // Switching to post removes that category's uploads; switching to digital starts clean.\n      const uploads = s.uploads.filter((u) => u.categoryId !== m.categoryId);\n      return { ...s, deliveryChannel, uploads };\n    }\n\n    case 'BackgroundUploadsReturned': {\n      let next = s;\n      for (const r of m.results) {\n        next = mapUpload(next, r.localId, (u) => ({\n          ...u,\n          status: r.success ? { type: 'complete', documentId: r.documentId } : { type: 'failed', reason: r.reason },\n        }));\n      }\n      return next;\n    }\n\n    default:\n      return assertNever(m);\n  }\n}\n\n/** The submit payload fragment: digital docs carry their documentId, post categories the channel. */\nexport function deliveryRefs(s: UploadState): Array<{ categoryId: string; channel: DeliveryChannel; documentId?: string }> {\n  const refs: Array<{ categoryId: string; channel: DeliveryChannel; documentId?: string }> = [];\n  for (const c of s.categories) {\n    if (s.deliveryChannel[c.categoryId] === 'post') {\n      refs.push({ categoryId: c.categoryId, channel: 'post' });\n    } else {\n      for (const u of s.uploads) {\n        if (u.categoryId === c.categoryId && u.status.type === 'complete') {\n          refs.push({ categoryId: c.categoryId, channel: 'digital', documentId: u.status.documentId });\n        }\n      }\n    }\n  }\n  return refs;\n}\n\n/** Used by the shell to find what to poll on return: still-in-flight uploads. */\nexport const inFlight = (s: UploadState): Upload[] =>\n  s.uploads.filter((u) => u.status.type === 'queued' || u.status.type === 'uploading');\n",
            "properties": [
                {
                    "name": "backgroundSync",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 26
                },
                {
                    "name": "categoryId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "fileName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 23
                },
                {
                    "name": "fileSizeMb",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 24
                },
                {
                    "name": "localId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 21
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UploadStatus",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 25
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UploadCategoriesDto",
            "id": "interface-UploadCategoriesDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "categories",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DocumentCategoryDto[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1518
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UploadControllerDeps",
            "id": "interface-UploadControllerDeps-2c383d746ca24b24548449c33ee24263dd3a21bacbb6c4bd83a7c585bcdb33cfc534fece306d90c7f1a7d0cca0eb75bc9db8501cdde5d2fbb133af9ddf6fa10a",
            "file": "src/app/shared/upload/upload-controller.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { DestroyRef, effect, inject } from '@angular/core';\nimport { CategoryParams, UploadAdapter } from './upload.adapter';\nimport { UploadShellService } from './upload-shell.service';\nimport { problemDetail } from '@shared/infrastructure/api-error';\nimport { SUBMIT_FAILED } from '@shared/application/submit';\nimport { DeliveryChannel, UploadMsg, UploadState, inFlight, rejectReason } from './upload.machine';\n\nexport interface UploadControllerDeps {\n  wizardId: string;\n  getUpload: () => UploadState;\n  dispatch: (m: UploadMsg) => void;\n  /** Optional answer-derived params; when they change, categories re-fetch. */\n  getCategoryParams?: () => CategoryParams;\n}\n\n/**\n * The effectful glue between the `<app-document-upload>` organism's events and the\n * pure upload reducer + transport. Both wizards instantiate one (in a field\n * initializer, like `createStore`). Holds the only state a reducer can't: the live\n * `File` blobs keyed by localId (needed to retry an upload). Loads categories,\n * reports background-sync availability, and polls on tab refocus.\n */\nexport function createUploadController(deps: UploadControllerDeps) {\n  const adapter = inject(UploadAdapter);\n  const shell = inject(UploadShellService);\n  const files = new Map<string, File>();\n  const categoriesRes = adapter.categoriesResource(deps.wizardId, deps.getCategoryParams);\n\n  // Runs after the host's `Seed`/restore microtask (effects fire in CD, not field\n  // init), so these dispatches aren't wiped by a state reseed.\n  effect(() => {\n    deps.dispatch({ type: 'BackgroundSyncAvailability', available: shell.backgroundSyncAvailable });\n    const status = categoriesRes.status();\n    if (status === 'resolved' || status === 'local') {\n      deps.dispatch({ type: 'CategoriesLoaded', categories: categoriesRes.value() ?? [] });\n    } else if (status === 'error') {\n      deps.dispatch({ type: 'CategoriesLoadFailed', reason: problemDetail(categoriesRes.error(), SUBMIT_FAILED) });\n    }\n  });\n\n  const onFocus = () => void shell.pollReturning(inFlight(deps.getUpload()), deps.dispatch);\n  window.addEventListener('focus', onFocus);\n  inject(DestroyRef).onDestroy(() => window.removeEventListener('focus', onFocus));\n\n  function start(categoryId: string, file: File) {\n    const localId = crypto.randomUUID();\n    files.set(localId, file);\n    deps.dispatch({ type: 'FileSelected', categoryId, localId, fileName: file.name, fileSizeMb: file.size / 1e6 });\n    shell.upload({ localId, categoryId, wizardId: deps.wizardId, file }, deps.dispatch);\n  }\n\n  return {\n    onFileSelected(categoryId: string, selected: File[]) {\n      const cat = deps.getUpload().categories.find((c) => c.categoryId === categoryId);\n      if (!cat) return;\n      if (!cat.multiple && selected.length > 1) {\n        deps.dispatch({ type: 'FileRejected', categoryId, reason: 'multiple' });\n        return;\n      }\n      for (const file of selected) {\n        const reason = rejectReason(cat, { type: file.type, sizeMb: file.size / 1e6 });\n        if (reason) deps.dispatch({ type: 'FileRejected', categoryId, reason });\n        else start(categoryId, file);\n      }\n    },\n    onRemove(localId: string) {\n      shell.cancel([localId]);\n      files.delete(localId);\n      deps.dispatch({ type: 'UploadRemoved', localId });\n    },\n    onRetry(localId: string) {\n      const file = files.get(localId);\n      const up = deps.getUpload().uploads.find((u) => u.localId === localId);\n      if (!file || !up) return;\n      deps.dispatch({ type: 'UploadRetried', localId });\n      shell.upload({ localId, categoryId: up.categoryId, wizardId: deps.wizardId, file }, deps.dispatch);\n    },\n    onDelete(e: { localId: string; documentId: string }) {\n      shell.delete(e.localId, e.documentId, deps.dispatch);\n    },\n    onChannelChange(categoryId: string, channel: DeliveryChannel) {\n      const ids = deps\n        .getUpload()\n        .uploads.filter((u) => u.categoryId === categoryId)\n        .map((u) => u.localId);\n      shell.cancel(ids);\n      deps.dispatch({ type: 'DeliveryChannelChanged', categoryId, channel });\n    },\n  };\n}\n",
            "properties": [
                {
                    "name": "dispatch",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 11
                },
                {
                    "name": "getCategoryParams",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>Optional answer-derived params; when they change, categories re-fetch.</p>\n",
                    "line": 13,
                    "rawdescription": "\nOptional answer-derived params; when they change, categories re-fetch."
                },
                {
                    "name": "getUpload",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 10
                },
                {
                    "name": "wizardId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 9
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UploadState",
            "id": "interface-UploadState-a9d98fc612c255dd91f2cd2e1dfab2fbff1c2361f950c1fbd696c7075a6424d5bebf88230c1c3c0f9e463fada8809608c0e890549e98b7dd3e745b512ebeee6f",
            "file": "src/app/shared/upload/upload.machine.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { assertNever } from '@shared/kernel/fp';\n\n/**\n * Pure upload domain (no Angular). Reusable across wizards: the host wizard folds\n * `UploadState` into its Model and delegates upload `Msg`s to `reduceUpload`.\n * Illegal states are unrepresentable by construction; the few transitions a union\n * can't express (channel↔upload exclusivity, single-file categories) are enforced\n * here in the reducer. Effects live in the shell (upload-shell.service.ts).\n */\n\nexport type UploadStatus =\n  | { type: 'idle' }\n  | { type: 'queued' }\n  | { type: 'uploading'; progressPct: number }\n  | { type: 'complete'; documentId: string }\n  | { type: 'failed'; reason: string }\n  | { type: 'deleting'; documentId: string } // carries the id so a failed delete can revert\n  | { type: 'deleted' };\n\nexport interface Upload {\n  localId: string; // client-generated UUID; the sync tag / status key\n  categoryId: string;\n  fileName: string;\n  fileSizeMb: number;\n  status: UploadStatus;\n  backgroundSync: boolean;\n}\n\nexport type DeliveryChannel = 'digital' | 'post';\n\nexport interface DocumentCategory {\n  categoryId: string;\n  label: string;\n  description: string;\n  required: boolean;\n  acceptedTypes: string[];\n  maxSizeMb: number;\n  multiple: boolean;\n  allowPostDelivery: boolean;\n}\n\nexport interface UploadState {\n  categories: DocumentCategory[];\n  uploads: Upload[];\n  deliveryChannel: Record<string, DeliveryChannel>; // categoryId → channel; default 'digital'\n  rejections: Record<string, string>; // categoryId → client-side validation message (transient)\n  backgroundSyncAvailable: boolean;\n  categoriesError?: string;\n}\n\nexport const initialUpload: UploadState = {\n  categories: [],\n  uploads: [],\n  deliveryChannel: {},\n  rejections: {},\n  backgroundSyncAvailable: false,\n};\n\nexport type UploadMsg =\n  | { type: 'CategoriesLoaded'; categories: DocumentCategory[] }\n  | { type: 'CategoriesLoadFailed'; reason: string }\n  | { type: 'BackgroundSyncAvailability'; available: boolean }\n  | { type: 'FileSelected'; categoryId: string; localId: string; fileName: string; fileSizeMb: number }\n  | { type: 'FileRejected'; categoryId: string; reason: 'type' | 'size' | 'multiple' }\n  | { type: 'UploadQueued'; localId: string; backgroundSync: boolean }\n  | { type: 'UploadProgress'; localId: string; progressPct: number }\n  | { type: 'UploadComplete'; localId: string; documentId: string }\n  | { type: 'UploadFailed'; localId: string; reason: string }\n  | { type: 'UploadRetried'; localId: string }\n  | { type: 'UploadRemoved'; localId: string }\n  | { type: 'UploadDeleteRequested'; localId: string; documentId: string }\n  | { type: 'UploadDeleting'; localId: string }\n  | { type: 'UploadDeleteComplete'; localId: string }\n  | { type: 'UploadDeleteFailed'; localId: string; reason: string }\n  | { type: 'DeliveryChannelChanged'; categoryId: string; channel: DeliveryChannel }\n  | {\n      type: 'BackgroundUploadsReturned';\n      results: Array<{ localId: string } & ({ success: true; documentId: string } | { success: false; reason: string })>;\n    };\n\nconst REJECTION_MESSAGES: Record<'type' | 'size' | 'multiple', string> = {\n  type: $localize`:@@upload.reject.type:Dit bestandstype is niet toegestaan voor deze categorie.`,\n  size: $localize`:@@upload.reject.size:Dit bestand is te groot.`,\n  multiple: $localize`:@@upload.reject.multiple:U kunt voor deze categorie maar één bestand uploaden.`,\n};\n\nconst ACTIVE: ReadonlyArray<UploadStatus['type']> = ['queued', 'uploading', 'complete'];\n\n/** A required category is satisfied by an initiated upload OR a post-delivery choice. */\nexport function categorySatisfied(s: UploadState, categoryId: string): boolean {\n  if (s.deliveryChannel[categoryId] === 'post') return true;\n  return s.uploads.some((u) => u.categoryId === categoryId && ACTIVE.includes(u.status.type));\n}\n\nexport function requiredCategoriesSatisfied(s: UploadState): boolean {\n  return s.categories.filter((c) => c.required).every((c) => categorySatisfied(s, c.categoryId));\n}\n\n/**\n * FE format-validation (never authority — the server re-validates). Returns the\n * rejection reason for one file, or null if it passes the category's type/size.\n */\nexport function rejectReason(cat: DocumentCategory, file: { type: string; sizeMb: number }): 'type' | 'size' | null {\n  if (cat.acceptedTypes.length > 0 && !cat.acceptedTypes.includes(file.type)) return 'type';\n  if (cat.maxSizeMb > 0 && file.sizeMb > cat.maxSizeMb) return 'size';\n  return null;\n}\n\n/** Map one upload's status, leaving the rest of the list untouched. */\nfunction mapUpload(s: UploadState, localId: string, f: (u: Upload) => Upload): UploadState {\n  return { ...s, uploads: s.uploads.map((u) => (u.localId === localId ? f(u) : u)) };\n}\n\nconst find = (s: UploadState, localId: string) => s.uploads.find((u) => u.localId === localId);\nconst categoryOf = (s: UploadState, categoryId: string) => s.categories.find((c) => c.categoryId === categoryId);\n\nexport function reduceUpload(s: UploadState, m: UploadMsg): UploadState {\n  switch (m.type) {\n    case 'CategoriesLoaded': {\n      // Categories can change with the answers (e.g. the diploma upload disappears once\n      // DUO is chosen). Drop uploads + channel choices for categories no longer present.\n      const ids = new Set(m.categories.map((c) => c.categoryId));\n      const deliveryChannel: Record<string, DeliveryChannel> = {};\n      for (const c of m.categories) deliveryChannel[c.categoryId] = s.deliveryChannel[c.categoryId] ?? 'digital';\n      const uploads = s.uploads.filter((u) => ids.has(u.categoryId));\n      return { ...s, categories: m.categories, uploads, deliveryChannel, categoriesError: undefined };\n    }\n    case 'CategoriesLoadFailed':\n      return { ...s, categoriesError: m.reason };\n    case 'BackgroundSyncAvailability':\n      return { ...s, backgroundSyncAvailable: m.available };\n\n    case 'FileSelected': {\n      // Reject at dispatch: unknown category, or a category set to post-delivery.\n      if (!categoryOf(s, m.categoryId) || s.deliveryChannel[m.categoryId] === 'post') return s;\n      const cat = categoryOf(s, m.categoryId)!;\n      // Single-file categories: a new selection replaces any existing upload.\n      const uploads = cat.multiple ? s.uploads : s.uploads.filter((u) => u.categoryId !== m.categoryId);\n      const next: Upload = {\n        localId: m.localId,\n        categoryId: m.categoryId,\n        fileName: m.fileName,\n        fileSizeMb: m.fileSizeMb,\n        status: { type: 'queued' },\n        backgroundSync: false,\n      };\n      const { [m.categoryId]: _cleared, ...rejections } = s.rejections;\n      return { ...s, uploads: [...uploads, next], rejections };\n    }\n    case 'FileRejected':\n      return { ...s, rejections: { ...s.rejections, [m.categoryId]: REJECTION_MESSAGES[m.reason] } };\n\n    case 'UploadQueued':\n      return mapUpload(s, m.localId, (u) => ({ ...u, status: { type: 'queued' }, backgroundSync: m.backgroundSync }));\n    case 'UploadProgress':\n      return mapUpload(s, m.localId, (u) => ({ ...u, status: { type: 'uploading', progressPct: m.progressPct } }));\n    case 'UploadComplete':\n      return mapUpload(s, m.localId, (u) => ({ ...u, status: { type: 'complete', documentId: m.documentId } }));\n    case 'UploadFailed':\n      return mapUpload(s, m.localId, (u) => ({ ...u, status: { type: 'failed', reason: m.reason } }));\n    case 'UploadRetried':\n      return mapUpload(s, m.localId, (u) => ({ ...u, status: { type: 'queued' } }));\n\n    case 'UploadRemoved':\n      return { ...s, uploads: s.uploads.filter((u) => u.localId !== m.localId) };\n\n    case 'UploadDeleteRequested':\n    case 'UploadDeleting':\n      // Both mark the in-flight delete; keep the documentId so a failure can revert.\n      return mapUpload(s, m.localId, (u) => {\n        const documentId = u.status.type === 'complete' ? u.status.documentId\n          : u.status.type === 'deleting' ? u.status.documentId : '';\n        return { ...u, status: { type: 'deleting', documentId } };\n      });\n    case 'UploadDeleteComplete':\n      return { ...s, uploads: s.uploads.filter((u) => u.localId !== m.localId) };\n    case 'UploadDeleteFailed':\n      return mapUpload(s, m.localId, (u) =>\n        u.status.type === 'deleting' ? { ...u, status: { type: 'complete', documentId: u.status.documentId } } : u);\n\n    case 'DeliveryChannelChanged': {\n      const cat = categoryOf(s, m.categoryId);\n      // Reject post for a category that doesn't permit it.\n      if (m.channel === 'post' && (!cat || !cat.allowPostDelivery)) return s;\n      const deliveryChannel = { ...s.deliveryChannel, [m.categoryId]: m.channel };\n      // Switching to post removes that category's uploads; switching to digital starts clean.\n      const uploads = s.uploads.filter((u) => u.categoryId !== m.categoryId);\n      return { ...s, deliveryChannel, uploads };\n    }\n\n    case 'BackgroundUploadsReturned': {\n      let next = s;\n      for (const r of m.results) {\n        next = mapUpload(next, r.localId, (u) => ({\n          ...u,\n          status: r.success ? { type: 'complete', documentId: r.documentId } : { type: 'failed', reason: r.reason },\n        }));\n      }\n      return next;\n    }\n\n    default:\n      return assertNever(m);\n  }\n}\n\n/** The submit payload fragment: digital docs carry their documentId, post categories the channel. */\nexport function deliveryRefs(s: UploadState): Array<{ categoryId: string; channel: DeliveryChannel; documentId?: string }> {\n  const refs: Array<{ categoryId: string; channel: DeliveryChannel; documentId?: string }> = [];\n  for (const c of s.categories) {\n    if (s.deliveryChannel[c.categoryId] === 'post') {\n      refs.push({ categoryId: c.categoryId, channel: 'post' });\n    } else {\n      for (const u of s.uploads) {\n        if (u.categoryId === c.categoryId && u.status.type === 'complete') {\n          refs.push({ categoryId: c.categoryId, channel: 'digital', documentId: u.status.documentId });\n        }\n      }\n    }\n  }\n  return refs;\n}\n\n/** Used by the shell to find what to poll on return: still-in-flight uploads. */\nexport const inFlight = (s: UploadState): Upload[] =>\n  s.uploads.filter((u) => u.status.type === 'queued' || u.status.type === 'uploading');\n",
            "properties": [
                {
                    "name": "backgroundSyncAvailable",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 47
                },
                {
                    "name": "categories",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DocumentCategory[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 43
                },
                {
                    "name": "categoriesError",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 48
                },
                {
                    "name": "deliveryChannel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Record<string | DeliveryChannel>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 45
                },
                {
                    "name": "rejections",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Record<string | string>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 46
                },
                {
                    "name": "uploads",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Upload[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 44
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UploadStatusDto",
            "id": "interface-UploadStatusDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "results",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UploadStatusItemDto[] | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1522
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UploadStatusItemDto",
            "id": "interface-UploadStatusItemDto-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "properties": [
                {
                    "name": "documentId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1528
                },
                {
                    "name": "localId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1526
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 1527
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UploadTransport",
            "id": "interface-UploadTransport-ec4f738d45fc556f5419cef06bad97f2f12a90de63211f79059088a2827ea9ee851b1544ec2110033a7797b65eaeb7caf0d4508fd122384394eaf9a145ffa7f6",
            "file": "src/app/shared/upload/upload-shell.service.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Injectable, inject } from '@angular/core';\nimport { UploadAdapter, XhrUploadRequest, XhrUploadHandle, UPLOAD_ABORTED } from './upload.adapter';\nimport { problemDetail } from '@shared/infrastructure/api-error';\nimport { UploadMsg, Upload } from './upload.machine';\n\n/**\n * Transport seam (PRD §6): how upload bytes leave the browser. The shipped impl is\n * KeepaliveTransport (XHR for progress; poll-on-return covers the background gap).\n * A ServiceWorkerTransport would set `backgroundSyncAvailable = true` and survive a\n * closed tab — swapping it in touches only this interface.\n */\nexport interface UploadTransport {\n  readonly backgroundSyncAvailable: boolean;\n  send(req: XhrUploadRequest, onProgress: (pct: number) => void): XhrUploadHandle;\n}\n\n@Injectable({ providedIn: 'root' })\nclass KeepaliveTransport implements UploadTransport {\n  private adapter = inject(UploadAdapter);\n  readonly backgroundSyncAvailable = false; // no Service Worker registered in this POC\n  send(req: XhrUploadRequest, onProgress: (pct: number) => void) {\n    return this.adapter.xhrUpload(req, onProgress);\n  }\n}\n\ntype Dispatch = (m: UploadMsg) => void;\n\n/**\n * Orchestrates upload effects: drives the transport and translates outcomes into\n * domain messages. Holds no UI state itself — the host wizard's reducer owns it.\n * Effects only; the reducer stays pure.\n */\n@Injectable({ providedIn: 'root' })\nexport class UploadShellService {\n  private transport: UploadTransport = inject(KeepaliveTransport);\n  private adapter = inject(UploadAdapter);\n  private inflight = new Map<string, () => void>(); // localId → cancel\n\n  get backgroundSyncAvailable(): boolean {\n    return this.transport.backgroundSyncAvailable;\n  }\n\n  /** Start (or retry) an upload: queue → progress → complete/failed. */\n  upload(req: XhrUploadRequest, dispatch: Dispatch): void {\n    dispatch({ type: 'UploadQueued', localId: req.localId, backgroundSync: this.backgroundSyncAvailable });\n    const { done, cancel } = this.transport.send(req, (pct) =>\n      dispatch({ type: 'UploadProgress', localId: req.localId, progressPct: pct }),\n    );\n    this.inflight.set(req.localId, cancel);\n    done\n      .then(({ documentId }) => dispatch({ type: 'UploadComplete', localId: req.localId, documentId }))\n      .catch((e) => {\n        if (e !== UPLOAD_ABORTED) {\n          dispatch({ type: 'UploadFailed', localId: req.localId, reason: typeof e === 'string' ? e : '' });\n        }\n      })\n      .finally(() => this.inflight.delete(req.localId));\n  }\n\n  /** Optimistic delete: mark deleting → complete (removed) / failed (reverted). */\n  delete(localId: string, documentId: string, dispatch: Dispatch): void {\n    dispatch({ type: 'UploadDeleting', localId });\n    this.adapter\n      .deleteDocument(documentId)\n      .then(() => dispatch({ type: 'UploadDeleteComplete', localId }))\n      .catch((e) => dispatch({ type: 'UploadDeleteFailed', localId, reason: problemDetail(e, '') }));\n  }\n\n  /** Cancel any in-flight XHRs (e.g. when a category switches to post-delivery). */\n  cancel(localIds: string[]): void {\n    for (const id of localIds) {\n      this.inflight.get(id)?.();\n      this.inflight.delete(id);\n    }\n  }\n\n  /** Poll-on-return: ask the BFF which still-in-flight uploads have arrived. */\n  async pollReturning(uploads: Upload[], dispatch: Dispatch): Promise<void> {\n    const ids = uploads.map((u) => u.localId);\n    if (ids.length === 0) return;\n    const items = await this.adapter.status(ids);\n    const results = items\n      .filter((i) => i.status === 'complete' && i.documentId)\n      .map((i) => ({ localId: i.localId, success: true as const, documentId: i.documentId! }));\n    if (results.length > 0) dispatch({ type: 'BackgroundUploadsReturned', results });\n  }\n}\n",
            "properties": [
                {
                    "name": "backgroundSyncAvailable",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 13,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 174,
            "description": "<p>Transport seam (PRD §6): how upload bytes leave the browser. The shipped impl is\nKeepaliveTransport (XHR for progress; poll-on-return covers the background gap).\nA ServiceWorkerTransport would set <code>backgroundSyncAvailable = true</code> and survive a\nclosed tab — swapping it in touches only this interface.</p>\n",
            "rawdescription": "\n\nTransport seam (PRD §6): how upload bytes leave the browser. The shipped impl is\nKeepaliveTransport (XHR for progress; poll-on-return covers the background gap).\nA ServiceWorkerTransport would set `backgroundSyncAvailable = true` and survive a\nclosed tab — swapping it in touches only this interface.\n",
            "methods": [
                {
                    "name": "send",
                    "args": [
                        {
                            "name": "req",
                            "type": "XhrUploadRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "onProgress",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "pct",
                                    "type": "number",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ]
                        }
                    ],
                    "optional": false,
                    "returnType": "XhrUploadHandle",
                    "typeParameters": [],
                    "line": 14,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "req",
                            "type": "XhrUploadRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "onProgress",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "pct",
                                    "type": "number",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "extends": []
        },
        {
            "name": "Valid",
            "id": "interface-Valid-f2c910e7845c4a1e95cc75170624db8664de0937455edc1bf8423b6389c310b7ef9ea149dc07ea49f0a4ecad039dbaf09b226864660b29dce075e717125dab0d",
            "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Result, assertNever } from '@shared/kernel/fp';\nimport { Uren, parseUren } from '@registratie/domain/value-objects/uren';\nimport {\n  UploadState,\n  UploadMsg,\n  initialUpload,\n  reduceUpload,\n  requiredCategoriesSatisfied,\n  deliveryRefs,\n} from '@shared/upload/upload.machine';\n\n/** What the user is typing (raw, possibly invalid). */\nexport interface Draft {\n  uren: string;\n  jaren: string;\n  punten: string;\n}\n\nexport type StepErrors = Partial<Record<keyof Draft | 'documenten', string>>;\n\n/** What we have AFTER parsing — branded/typed, guaranteed valid. */\nexport interface Valid {\n  uren: Uren;\n  jaren: number;\n  punten: number;\n  documents: Array<{ categoryId: string; channel: 'digital' | 'post'; documentId?: string }>;\n}\n\n/**\n * The whole wizard as one tagged union. `step` and `errors` exist ONLY while\n * Editing; Submitting/Submitted/Failed carry a `Valid` payload and nothing else.\n * So \"submitting while a field is invalid\" or \"showing the success screen with\n * errors set\" are unrepresentable — the bug class is gone by construction.\n */\nexport type WizardState =\n  | { tag: 'Editing'; step: 1 | 2 | 3; draft: Draft; errors: StepErrors; upload: UploadState }\n  | { tag: 'Submitting'; data: Valid }\n  | { tag: 'Submitted'; data: Valid }\n  | { tag: 'Failed'; data: Valid; error: string };\n\nexport const initial: WizardState = { tag: 'Editing', step: 1, draft: { uren: '', jaren: '', punten: '' }, errors: {}, upload: initialUpload };\n\n/** Has the user meaningfully started, so it's worth persisting as a Concept? */\nexport function hasProgress(s: Extract<WizardState, { tag: 'Editing' }>): boolean {\n  return s.step > 1 || !!s.draft.uren || !!s.draft.jaren || !!s.draft.punten || deliveryRefs(s.upload).some((r) => r.channel === 'digital' && !!r.documentId);\n}\n\n/** Parse every field; on success hand back a Valid, else the per-field errors. */\nfunction validate(draft: Draft, upload: UploadState): Result<StepErrors, Valid> {\n  const uren = parseUren(draft.uren);\n  const jaren = parseUren(draft.jaren);\n  const punten = parseUren(draft.punten);\n  const errors: StepErrors = {};\n  if (!uren.ok) errors.uren = uren.error;\n  if (!jaren.ok) errors.jaren = jaren.error;\n  if (!punten.ok) errors.punten = punten.error;\n  if (!requiredCategoriesSatisfied(upload)) {\n    errors.documenten = $localize`:@@validation.documenten:Lever de verplichte documenten aan (upload of kies \"per post nasturen\").`;\n  }\n  if (uren.ok && jaren.ok && punten.ok && !errors.documenten) {\n    return { ok: true, value: { uren: uren.value, jaren: jaren.value, punten: punten.value, documents: deliveryRefs(upload) } };\n  }\n  return { ok: false, error: errors };\n}\n\n/** Advance one step, gating on that step's fields. Illegal elsewhere = no-op. */\nexport function next(s: WizardState): WizardState {\n  if (s.tag !== 'Editing') return s;\n  const errors: StepErrors = {};\n  if (s.step === 1) {\n    const uren = parseUren(s.draft.uren);\n    const jaren = parseUren(s.draft.jaren);\n    if (!uren.ok) errors.uren = uren.error;\n    if (!jaren.ok) errors.jaren = jaren.error;\n    return Object.keys(errors).length === 0 ? { ...s, step: 2, errors: {} } : { ...s, errors };\n  }\n  if (s.step === 2) {\n    const punten = parseUren(s.draft.punten);\n    if (!punten.ok) errors.punten = punten.error;\n    return punten.ok ? { ...s, step: 3, errors: {} } : { ...s, errors };\n  }\n  return s;\n}\n\nexport function back(s: WizardState): WizardState {\n  if (s.tag !== 'Editing' || s.step === 1) return s;\n  return { ...s, step: (s.step - 1) as 1 | 2, errors: {} };\n}\n\n/** Jump back to an earlier step to correct data (controle → step N). Forward\n    jumps are not allowed (would skip validation). */\nexport function gaNaarStap(s: WizardState, step: 1 | 2 | 3): WizardState {\n  if (s.tag !== 'Editing' || step >= s.step) return s;\n  return { ...s, step, errors: {} };\n}\n\n/** Step 3 submit: parse everything + require documents; Submitting only with Valid. */\nexport function submit(s: WizardState): WizardState {\n  if (s.tag !== 'Editing' || s.step !== 3) return s;\n  const result = validate(s.draft, s.upload);\n  return result.ok ? { tag: 'Submitting', data: result.value } : { ...s, errors: result.error };\n}\n\n/** Route an upload sub-message through the pure upload reducer (Editing only). */\nexport function upload(s: WizardState, msg: UploadMsg): WizardState {\n  if (s.tag !== 'Editing') return s;\n  return { ...s, upload: reduceUpload(s.upload, msg) };\n}\n\n/** Resolve the async submit. Only meaningful while Submitting. */\nexport function resolve(s: WizardState, r: Result<string, void>): WizardState {\n  if (s.tag !== 'Submitting') return s;\n  return r.ok ? { tag: 'Submitted', data: s.data } : { tag: 'Failed', data: s.data, error: r.error };\n}\n\n/** Update one draft field while editing; ignored in any other state. */\nexport function setField(s: WizardState, key: keyof Draft, value: string): WizardState {\n  if (s.tag !== 'Editing') return s;\n  return { ...s, draft: { ...s.draft, [key]: value } };\n}\n\n/**\n * Every event that can happen to the wizard, as one message type. The component\n * sends a WizardMsg; `reduce` decides the next state. This is the Elm\n * Model+Msg+update pattern: ONE pure function describes all state changes.\n */\nexport type WizardMsg =\n  | { tag: 'SetField'; key: keyof Draft; value: string }\n  | { tag: 'Next' }\n  | { tag: 'Back' }\n  | { tag: 'GaNaarStap'; step: 1 | 2 | 3 }\n  | { tag: 'Submit' }\n  | { tag: 'Retry' }\n  | { tag: 'SubmitConfirmed' }\n  | { tag: 'SubmitFailed'; error: string }\n  | { tag: 'Upload'; msg: UploadMsg }\n  | { tag: 'Seed'; state: WizardState }; // mount a specific state (stories/showcase)\n\nexport function reduce(s: WizardState, m: WizardMsg): WizardState {\n  switch (m.tag) {\n    case 'SetField':\n      return setField(s, m.key, m.value);\n    case 'Next':\n      return next(s);\n    case 'Back':\n      return back(s);\n    case 'GaNaarStap':\n      return gaNaarStap(s, m.step);\n    case 'Submit':\n      return submit(s);\n    case 'Retry':\n      return s.tag === 'Failed' ? { tag: 'Submitting', data: s.data } : s;\n    case 'SubmitConfirmed':\n      return s.tag === 'Submitting' ? { tag: 'Submitted', data: s.data } : s;\n    case 'SubmitFailed':\n      return s.tag === 'Submitting' ? { tag: 'Failed', data: s.data, error: m.error } : s;\n    case 'Upload':\n      return upload(s, m.msg);\n    case 'Seed':\n      return m.state;\n    default:\n      return assertNever(m);\n  }\n}\n",
            "properties": [
                {
                    "name": "documents",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Array<literal type>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 26
                },
                {
                    "name": "jaren",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 24
                },
                {
                    "name": "punten",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "uren",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Uren",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 23
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>What we have AFTER parsing — branded/typed, guaranteed valid.</p>\n",
            "rawdescription": "\nWhat we have AFTER parsing — branded/typed, guaranteed valid.",
            "methods": [],
            "extends": []
        },
        {
            "name": "Valid",
            "id": "interface-Valid-69e87ea9a6c36bd372087191f1524450d62f799934711812731fbbd8f034a9e92b7928082471c429b82990c34c47b84b6493735cb994ec6fdfb81b200e990467-1",
            "file": "src/app/registratie/domain/change-request.machine.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Result, assertNever } from '@shared/kernel/fp';\nimport { Postcode, parsePostcode } from '@registratie/domain/value-objects/postcode';\n\n/** What the user is typing (raw, possibly invalid). */\nexport interface Draft {\n  straat: string;\n  postcode: string;\n  woonplaats: string;\n}\n\n/** After parsing — postcode is the branded type, so downstream can't get a raw one. */\nexport interface Valid {\n  straat: string;\n  postcode: Postcode;\n  woonplaats: string;\n}\n\nexport type Errors = Partial<Record<keyof Draft, string>>;\n\n/**\n * The change-request (adreswijziging) form as one tagged union — the SAME idiom\n * as the wizards, just single-step. `draft`/`errors` exist only while Editing;\n * Submitting/Submitted/Failed carry the parsed `Valid`. Illegal states (submitting\n * an invalid draft, a success screen with errors) are unrepresentable.\n */\nexport type State =\n  | { tag: 'Editing'; draft: Draft; errors: Errors }\n  | { tag: 'Submitting'; data: Valid }\n  | { tag: 'Submitted'; data: Valid; referentie: string }\n  | { tag: 'Failed'; data: Valid; error: string };\n\nexport const initial: State = {\n  tag: 'Editing',\n  draft: { straat: '', postcode: '', woonplaats: '' },\n  errors: {},\n};\n\n/** Parse via the value objects; on success hand back a Valid, else per-field errors. */\nfunction validate(draft: Draft): Result<Errors, Valid> {\n  const straat = draft.straat.trim();\n  const postcode = parsePostcode(draft.postcode);\n  const errors: Errors = {};\n  if (!straat) errors.straat = $localize`:@@validation.straat:Vul straat en huisnummer in.`;\n  if (!postcode.ok) errors.postcode = postcode.error;\n  if (straat && postcode.ok) {\n    return { ok: true, value: { straat, postcode: postcode.value, woonplaats: draft.woonplaats.trim() } };\n  }\n  return { ok: false, error: errors };\n}\n\nexport type Msg =\n  | { tag: 'SetField'; key: keyof Draft; value: string }\n  | { tag: 'Submit' }\n  | { tag: 'Retry' }\n  | { tag: 'SubmitConfirmed'; referentie: string }\n  | { tag: 'SubmitFailed'; error: string }\n  | { tag: 'Reset' }\n  | { tag: 'Seed'; state: State }; // mount a specific state (stories/tests)\n\nexport function reduce(s: State, m: Msg): State {\n  switch (m.tag) {\n    case 'SetField':\n      return s.tag === 'Editing' ? { ...s, draft: { ...s.draft, [m.key]: m.value } } : s;\n    case 'Submit': {\n      if (s.tag !== 'Editing') return s;\n      const r = validate(s.draft);\n      return r.ok ? { tag: 'Submitting', data: r.value } : { ...s, errors: r.error };\n    }\n    case 'Retry':\n      return s.tag === 'Failed' ? { tag: 'Submitting', data: s.data } : s;\n    case 'SubmitConfirmed':\n      return s.tag === 'Submitting' ? { tag: 'Submitted', data: s.data, referentie: m.referentie } : s;\n    case 'SubmitFailed':\n      return s.tag === 'Submitting' ? { tag: 'Failed', data: s.data, error: m.error } : s;\n    case 'Reset':\n      return initial;\n    case 'Seed':\n      return m.state;\n    default:\n      return assertNever(m);\n  }\n}\n",
            "properties": [
                {
                    "name": "postcode",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Postcode",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "straat",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 13
                },
                {
                    "name": "woonplaats",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 15
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>After parsing — postcode is the branded type, so downstream can&#39;t get a raw one.</p>\n",
            "rawdescription": "\nAfter parsing — postcode is the branded type, so downstream can't get a raw one.",
            "methods": [],
            "extends": [],
            "isDuplicate": true,
            "duplicateId": 1,
            "duplicateName": "Valid-1"
        },
        {
            "name": "ValidIntake",
            "id": "interface-ValidIntake-7bf45afef74ccc5d1b6fecd5ce7c56a21a9244e3daaf5f01717b29ec9163e0e4416b96e2a722a32e9260ca035e9a76c4d7a02d13c5dbd784c16d2d9a03e58bc9",
            "file": "src/app/herregistratie/domain/intake.machine.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Result, ok, err, assertNever } from '@shared/kernel/fp';\nimport { Uren, parseUren } from '@registratie/domain/value-objects/uren';\n\n/**\n * A FIXED 3-step wizard with progressive disclosure. The steps never change in\n * number (always `STEPS`); instead, follow-up questions appear *inline within a\n * step* depending on earlier answers — answer \"buiten Nederland gewerkt? → ja\"\n * and the country/hours questions reveal in the same step; report few hours and\n * the scholing-question reveals inside the 'werk' step. \"Is this field required\n * right now\" is a pure function (`validateStep`/`lageUren`), so it's trivial to\n * test and impossible to get out of sync with the data.\n */\n\nexport type JaNee = 'ja' | 'nee';\n\n/** The three fixed steps. Each step groups one or more questions. */\nexport type StepId = 'buitenland' | 'werk' | 'review';\n\n/** One record carried across every step (and persisted). All optional: the user\n    fills it in gradually, and branches may never ask some fields. */\nexport interface Answers {\n  buitenlandGewerkt?: JaNee; // Q1\n  land?: string; // Q1a — only when buitenlandGewerkt === 'ja'\n  buitenlandseUren?: string; // Q1b — only when buitenlandGewerkt === 'ja'\n  uren?: string; // Q2 — uren in NL\n  scholingGevolgd?: JaNee; // Q3 — only when total hours are below the threshold\n  punten?: string; // Q4\n}\n\n/** What we have after the review step parses — guaranteed valid/typed. */\nexport interface ValidIntake {\n  werktBuitenland: boolean;\n  land?: string;\n  buitenlandseUren?: Uren;\n  uren: Uren;\n  aanvullendeScholing?: boolean;\n  punten?: Uren; // only collected when aanvullende scholing is gevolgd (scholingGevolgd === 'ja')\n}\n\n/** Demo fallback only — the real threshold is a SERVER-OWNED policy value fetched\n    at runtime (see IntakePolicyDto / SetPolicy). ponytail: default is the offline\n    fallback; the server value wins. */\nexport const SCHOLING_THRESHOLD_DEFAULT = 1000;\n\n/** True when NL-hours are low enough that the scholing question must be answered.\n    The threshold is passed in (server-owned), not hardcoded. */\nexport function lageUren(a: Answers, scholingThreshold = SCHOLING_THRESHOLD_DEFAULT): boolean {\n  const r = parseUren(a.uren ?? '');\n  return r.ok && r.value < scholingThreshold;\n}\n\n/** The fixed step list. Number of steps never changes; questions reveal inline. */\nexport const STEPS: StepId[] = ['buitenland', 'werk', 'review'];\n\n/** Per-field error map: one message per question, since a step holds several. */\ntype Errors = Partial<Record<keyof Answers, string>>;\n\nexport type IntakeState =\n  | { tag: 'Answering'; answers: Answers; cursor: number; errors: Errors; scholingThreshold: number }\n  | { tag: 'Submitting'; data: ValidIntake }\n  | { tag: 'Submitted'; data: ValidIntake }\n  | { tag: 'Failed'; data: ValidIntake; error: string };\n\nexport const initial: IntakeState = { tag: 'Answering', answers: {}, cursor: 0, errors: {}, scholingThreshold: SCHOLING_THRESHOLD_DEFAULT };\n\n/** Which step the cursor currently points at (clamped to the fixed list). */\nexport function currentStep(s: Extract<IntakeState, { tag: 'Answering' }>): StepId {\n  return STEPS[Math.min(s.cursor, STEPS.length - 1)];\n}\n\n/** Has the user meaningfully started, so it's worth persisting as a Concept?\n    (No auto-prefill here — pristine means truly untouched.) */\nexport function hasProgress(s: Extract<IntakeState, { tag: 'Answering' }>): boolean {\n  return s.cursor > 0 || Object.keys(s.answers).length > 0;\n}\n\n/** Validate every question currently visible in ONE step. Errors keyed per field. */\nfunction validateStep(step: StepId, a: Answers, scholingThreshold: number): Result<Errors, void> {\n  const errors: Errors = {};\n  switch (step) {\n    case 'buitenland':\n      if (!a.buitenlandGewerkt) errors.buitenlandGewerkt = $localize`:@@validation.maakKeuze:Maak een keuze.`;\n      else if (a.buitenlandGewerkt === 'ja') {\n        if (!a.land || a.land.trim() === '') errors.land = $localize`:@@validation.land:Vul een land in.`;\n        const u = parseUren(a.buitenlandseUren ?? '');\n        if (!u.ok) errors.buitenlandseUren = u.error;\n      }\n      break;\n    case 'werk': {\n      const u = parseUren(a.uren ?? '');\n      if (!u.ok) errors.uren = u.error;\n      if (lageUren(a, scholingThreshold) && !a.scholingGevolgd) errors.scholingGevolgd = $localize`:@@validation.maakKeuze:Maak een keuze.`;\n      // Nascholingspunten are only asked (and required) when scholing was followed.\n      if (a.scholingGevolgd === 'ja') {\n        const p = parseUren(a.punten ?? '');\n        if (!p.ok) errors.punten = p.error;\n      }\n      break;\n    }\n    case 'review':\n      break; // review shows a summary; no own fields\n    default:\n      return assertNever(step);\n  }\n  return Object.keys(errors).length > 0 ? err(errors) : ok(undefined);\n}\n\n/** Parse the whole questionnaire into a ValidIntake (called on submit). */\nfunction validateAll(a: Answers, scholingThreshold: number): Result<Errors, ValidIntake> {\n  const errors: Errors = {};\n  for (const step of STEPS) {\n    const r = validateStep(step, a, scholingThreshold);\n    if (!r.ok) Object.assign(errors, r.error);\n  }\n  if (Object.keys(errors).length > 0) return err(errors);\n\n  const uren = parseUren(a.uren ?? '');\n  // validateStep guaranteed uren parses, but keep the compiler happy.\n  if (!uren.ok) return err(errors);\n\n  const werktBuitenland = a.buitenlandGewerkt === 'ja';\n  const buitenland = parseUren(a.buitenlandseUren ?? '');\n  // Punten are only collected when aanvullende scholing was gevolgd.\n  const punten = a.scholingGevolgd === 'ja' ? parseUren(a.punten ?? '') : undefined;\n  return ok({\n    werktBuitenland,\n    land: werktBuitenland ? a.land : undefined,\n    buitenlandseUren: werktBuitenland && buitenland.ok ? buitenland.value : undefined,\n    uren: uren.value,\n    aanvullendeScholing: lageUren(a, scholingThreshold) ? a.scholingGevolgd === 'ja' : undefined,\n    punten: punten?.ok ? punten.value : undefined,\n  });\n}\n\nexport function setAnswer(s: IntakeState, key: keyof Answers, value: string): IntakeState {\n  if (s.tag !== 'Answering') return s;\n  // Steps are fixed, so editing an answer never moves the cursor — it only\n  // reveals/hides inline questions within the current step.\n  return { ...s, answers: { ...s.answers, [key]: value } };\n}\n\nexport function next(s: IntakeState): IntakeState {\n  if (s.tag !== 'Answering') return s;\n  const r = validateStep(currentStep(s), s.answers, s.scholingThreshold);\n  if (!r.ok) return { ...s, errors: r.error };\n  return { ...s, cursor: Math.min(s.cursor + 1, STEPS.length - 1), errors: {} };\n}\n\n/** Apply a server-owned policy value (e.g. the scholing threshold). */\nexport function setPolicy(s: IntakeState, scholingThreshold: number): IntakeState {\n  return s.tag === 'Answering' ? { ...s, scholingThreshold } : s;\n}\n\nexport function back(s: IntakeState): IntakeState {\n  if (s.tag !== 'Answering' || s.cursor === 0) return s;\n  return { ...s, cursor: s.cursor - 1, errors: {} };\n}\n\n/** Jump back to an earlier step to correct answers (review → step N). Forward\n    jumps are not allowed (would skip validation). */\nexport function gaNaarStap(s: IntakeState, cursor: number): IntakeState {\n  if (s.tag !== 'Answering' || cursor < 0 || cursor >= s.cursor) return s;\n  return { ...s, cursor, errors: {} };\n}\n\nexport function submit(s: IntakeState): IntakeState {\n  if (s.tag !== 'Answering') return s;\n  const r = validateAll(s.answers, s.scholingThreshold);\n  return r.ok ? { tag: 'Submitting', data: r.value } : { ...s, errors: r.error };\n}\n\nexport function resolve(s: IntakeState, r: Result<string, void>): IntakeState {\n  if (s.tag !== 'Submitting') return s;\n  return r.ok ? { tag: 'Submitted', data: s.data } : { tag: 'Failed', data: s.data, error: r.error };\n}\n\nexport type IntakeMsg =\n  | { tag: 'SetAnswer'; key: keyof Answers; value: string }\n  | { tag: 'Next' }\n  | { tag: 'Back' }\n  | { tag: 'GaNaarStap'; cursor: number }\n  | { tag: 'Submit' }\n  | { tag: 'Retry' }\n  | { tag: 'SubmitConfirmed' }\n  | { tag: 'SubmitFailed'; error: string }\n  | { tag: 'SetPolicy'; scholingThreshold: number }\n  | { tag: 'Seed'; state: IntakeState };\n\nexport function reduce(s: IntakeState, m: IntakeMsg): IntakeState {\n  switch (m.tag) {\n    case 'SetAnswer':\n      return setAnswer(s, m.key, m.value);\n    case 'Next':\n      return next(s);\n    case 'Back':\n      return back(s);\n    case 'GaNaarStap':\n      return gaNaarStap(s, m.cursor);\n    case 'Submit':\n      return submit(s);\n    case 'Retry':\n      return s.tag === 'Failed' ? { tag: 'Submitting', data: s.data } : s;\n    case 'SubmitConfirmed':\n      return s.tag === 'Submitting' ? { tag: 'Submitted', data: s.data } : s;\n    case 'SubmitFailed':\n      return s.tag === 'Submitting' ? { tag: 'Failed', data: s.data, error: m.error } : s;\n    case 'SetPolicy':\n      return setPolicy(s, m.scholingThreshold);\n    case 'Seed':\n      return m.state;\n    default:\n      return assertNever(m);\n  }\n}\n",
            "properties": [
                {
                    "name": "aanvullendeScholing",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 36
                },
                {
                    "name": "buitenlandseUren",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Uren",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 34
                },
                {
                    "name": "land",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 33
                },
                {
                    "name": "punten",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Uren",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 37
                },
                {
                    "name": "uren",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Uren",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 35
                },
                {
                    "name": "werktBuitenland",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 32
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>What we have after the review step parses — guaranteed valid/typed.</p>\n",
            "rawdescription": "\nWhat we have after the review step parses — guaranteed valid/typed.",
            "methods": [],
            "extends": []
        },
        {
            "name": "ValidRegistratie",
            "id": "interface-ValidRegistratie-b7c3c5d493aa141ca68cb964e63408db7152b07336b239864d3c430b84d8eb3e650d1a3abaf3fda253444af942c45f86138a5d8229832d49bda94eec35c33546",
            "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Result, ok, err, assertNever } from '@shared/kernel/fp';\nimport { Postcode, parsePostcode } from '@registratie/domain/value-objects/postcode';\nimport { Email, parseEmail } from '@registratie/domain/value-objects/email';\nimport {\n  UploadState,\n  UploadMsg,\n  DeliveryChannel,\n  initialUpload,\n  reduceUpload,\n  requiredCategoriesSatisfied,\n  deliveryRefs,\n} from '@shared/upload/upload.machine';\n\n/**\n * A FIXED 3-step registration wizard. The steps never change in number (always\n * `STEPS`): (1) adres + correspondentievoorkeur, (2) beroep o.b.v. diploma,\n * (3) controle & indienen. Follow-up questions appear *inline within a step*\n * (e.g. choosing 'email' reveals the e-mail field). \"Is this field required\n * right now\" is a pure function (`validateStep`), so it is trivial to test and\n * impossible to get out of sync with the data. Invariants live here, not in the\n * UI: the wizard reaches `Indienen` only when a complete `ValidRegistratie` parses.\n */\n\nexport type StepId = 'adres' | 'beroep' | 'controle';\n\n/** The fixed step list. Number of steps never changes; questions reveal inline. */\nexport const STEPS: StepId[] = ['adres', 'beroep', 'controle'];\n\n/** Where a piece of data came from — recorded on the aggregate (PRD §5). */\nexport type AdresHerkomst = 'brp' | 'handmatig';\nexport type DiplomaHerkomst = 'duo' | 'handmatig';\nexport type Correspondentie = 'email' | 'post';\n\n/** One record carried across every step (and persisted). All optional: the user\n    fills it in gradually. Adres fields are kept flat so one `SetField` message\n    serves them all (mirrors the intake machine). */\nexport interface Draft {\n  straat?: string;\n  postcode?: string;\n  woonplaats?: string;\n  adresHerkomst?: AdresHerkomst;\n  correspondentie?: Correspondentie;\n  email?: string;\n  diplomaId?: string;\n  diplomaHerkomst?: DiplomaHerkomst;\n  beroep?: string; // DERIVED from the chosen DUO diploma (or declared for a manual one)\n  vraagIds?: string[]; // ids of the policy questions that apply to the chosen diploma\n  antwoorden: Record<string, string>; // geldigheidsantwoorden, keyed by question id\n}\n\n/** What we have after the controle step parses — guaranteed valid/typed. */\nexport interface ValidRegistratie {\n  adres: { straat: string; postcode: Postcode; woonplaats: string };\n  adresHerkomst: AdresHerkomst;\n  correspondentie: Correspondentie;\n  email?: Email; // only when correspondentie === 'email'\n  diplomaId: string;\n  diplomaHerkomst: DiplomaHerkomst;\n  beroep: string;\n  antwoorden: Record<string, string>;\n  documents: Array<{ categoryId: string; channel: DeliveryChannel; documentId?: string }>;\n}\n\n/** Text fields settable via SetField. */\nexport type DraftField = 'straat' | 'postcode' | 'woonplaats' | 'email';\n\n/** Per-field error map. `antwoorden` holds per-policy-question errors, keyed by\n    question id (a step can show several questions). */\nexport interface Errors {\n  straat?: string;\n  postcode?: string;\n  woonplaats?: string;\n  email?: string;\n  correspondentie?: string;\n  diploma?: string;\n  documenten?: string;\n  antwoorden?: Record<string, string>;\n}\n\nexport type RegistratieState =\n  | { tag: 'Invullen'; draft: Draft; cursor: number; errors: Errors; upload: UploadState }\n  | { tag: 'Indienen'; data: ValidRegistratie }\n  | { tag: 'Ingediend'; data: ValidRegistratie; referentie: string }\n  | { tag: 'Mislukt'; data: ValidRegistratie; error: string };\n\nconst emptyDraft: Draft = { antwoorden: {} };\nexport const initial: RegistratieState = { tag: 'Invullen', draft: emptyDraft, cursor: 0, errors: {}, upload: initialUpload };\n\n/** Which step the cursor currently points at (clamped to the fixed list). */\nexport function currentStep(s: Extract<RegistratieState, { tag: 'Invullen' }>): StepId {\n  return STEPS[Math.min(s.cursor, STEPS.length - 1)];\n}\n\n/** Has the user meaningfully started, so it's worth persisting as a Concept? Excludes\n    the automatic BRP address prefill on step 0 — a bare page visit creates nothing.\n    ponytail: an address typed at step 0 without any of these signals is not yet\n    persisted (created once they advance/choose); accepted regression vs. sessionStorage. */\nexport function hasProgress(s: Extract<RegistratieState, { tag: 'Invullen' }>): boolean {\n  const d = s.draft;\n  return (\n    s.cursor > 0 ||\n    !!d.correspondentie ||\n    !!d.email ||\n    !!d.diplomaId ||\n    !!d.beroep ||\n    deliveryRefs(s.upload).some((r) => r.channel === 'digital' && !!r.documentId)\n  );\n}\n\n/** Validate every question currently visible in ONE step. Errors keyed per field. */\nfunction validateStep(step: StepId, d: Draft, upload: UploadState): Result<Errors, void> {\n  const errors: Errors = {};\n  switch (step) {\n    case 'adres': {\n      if (!d.straat || d.straat.trim() === '') errors.straat = $localize`:@@validation.straat2:Vul een straat en huisnummer in.`;\n      const pc = parsePostcode(d.postcode ?? '');\n      if (!pc.ok) errors.postcode = pc.error;\n      if (!d.woonplaats || d.woonplaats.trim() === '') errors.woonplaats = $localize`:@@validation.woonplaats:Vul een woonplaats in.`;\n      if (!d.correspondentie) errors.correspondentie = $localize`:@@validation.maakKeuze:Maak een keuze.`;\n      // E-mail is only required when 'email' is the chosen channel.\n      if (d.correspondentie === 'email') {\n        const e = parseEmail(d.email ?? '');\n        if (!e.ok) errors.email = e.error;\n      }\n      break;\n    }\n    case 'beroep': {\n      // A diploma must be chosen (or declared manually); its beroep is then known.\n      if (!d.diplomaId || !d.beroep) {\n        errors.diploma = $localize`:@@validation.diploma:Kies het diploma waarmee u zich wilt registreren, of voer het handmatig in.`;\n        break;\n      }\n      // Every policy question the chosen diploma raised must be answered. Which\n      // questions apply is server-decided (carried in `vraagIds`); we only check\n      // they're answered.\n      const open: Record<string, string> = {};\n      for (const id of d.vraagIds ?? []) {\n        if (!(d.antwoorden[id] ?? '').trim()) open[id] = $localize`:@@validation.beantwoordVraag:Beantwoord deze vraag.`;\n      }\n      if (Object.keys(open).length > 0) errors.antwoorden = open;\n      // Required documents for this wizard attach to the beroep step (inline upload).\n      if (!requiredCategoriesSatisfied(upload)) {\n        errors.documenten = $localize`:@@validation.documenten:Lever de verplichte documenten aan (upload of kies \"per post nasturen\").`;\n      }\n      break;\n    }\n    case 'controle':\n      break; // controle shows a summary; no own fields\n    default:\n      return assertNever(step);\n  }\n  return Object.keys(errors).length > 0 ? err(errors) : ok(undefined);\n}\n\n/** Parse the whole wizard into a ValidRegistratie (called on submit). */\nfunction validateAll(d: Draft, upload: UploadState): Result<Errors, ValidRegistratie> {\n  const errors: Errors = {};\n  for (const step of STEPS) {\n    const r = validateStep(step, d, upload);\n    if (!r.ok) Object.assign(errors, r.error);\n  }\n  if (Object.keys(errors).length > 0) return err(errors);\n\n  const pc = parsePostcode(d.postcode ?? '');\n  // validateStep guaranteed these parse, but keep the compiler happy.\n  if (!pc.ok || !d.diplomaId || !d.beroep || !d.correspondentie) return err(errors);\n  const email = d.correspondentie === 'email' ? parseEmail(d.email ?? '') : undefined;\n  // Keep only the answers to the questions that actually applied.\n  const vraagIds = d.vraagIds ?? [];\n  const antwoorden = Object.fromEntries(vraagIds.map((id) => [id, d.antwoorden[id] ?? '']));\n\n  return ok({\n    adres: { straat: d.straat!, postcode: pc.value, woonplaats: d.woonplaats! },\n    adresHerkomst: d.adresHerkomst ?? 'handmatig',\n    correspondentie: d.correspondentie,\n    email: email?.ok ? email.value : undefined,\n    diplomaId: d.diplomaId,\n    diplomaHerkomst: d.diplomaHerkomst ?? 'handmatig',\n    beroep: d.beroep,\n    antwoorden,\n    documents: deliveryRefs(upload),\n  });\n}\n\nexport function setField(s: RegistratieState, key: DraftField, value: string): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  const draft: Draft = { ...s.draft, [key]: value };\n  // Editing an address field means the user owns it now — not the BRP copy.\n  if (key === 'straat' || key === 'postcode' || key === 'woonplaats') draft.adresHerkomst = 'handmatig';\n  return { ...s, draft };\n}\n\nexport function setCorrespondentie(s: RegistratieState, value: Correspondentie): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, correspondentie: value } };\n}\n\n/** Prefill the address from a BRP lookup and flag its origin (PRD §7). */\nexport function prefillAdres(s: RegistratieState, straat: string, postcode: string, woonplaats: string): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, straat, postcode, woonplaats, adresHerkomst: 'brp' } };\n}\n\n/** Pick a DUO diploma; the beroep is derived from it and the applicable policy\n    questions (`vraagIds`) come with it (both server-computed, passed in). */\nexport function kiesDiploma(s: RegistratieState, diplomaId: string, beroep: string, vraagIds: string[]): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, diplomaId, beroep, vraagIds, diplomaHerkomst: 'duo' }, errors: {} };\n}\n\n/** Switch to manual diploma entry: the diploma isn't in DUO, so the MAXIMAL\n    policy-question set applies and the entry is flagged handmatig/unverified. The\n    beroep is declared separately (declareerBeroep). */\nexport function kiesHandmatig(s: RegistratieState, vraagIds: string[]): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, diplomaId: 'handmatig', beroep: undefined, vraagIds, diplomaHerkomst: 'handmatig' }, errors: {} };\n}\n\n/** Declare the beroep for a manually-entered diploma (chosen from a fixed list). */\nexport function declareerBeroep(s: RegistratieState, beroep: string): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, beroep } };\n}\n\nexport function setAntwoord(s: RegistratieState, vraagId: string, value: string): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, draft: { ...s.draft, antwoorden: { ...s.draft.antwoorden, [vraagId]: value } } };\n}\n\nexport function next(s: RegistratieState): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  const r = validateStep(currentStep(s), s.draft, s.upload);\n  if (!r.ok) return { ...s, errors: r.error };\n  return { ...s, cursor: Math.min(s.cursor + 1, STEPS.length - 1), errors: {} };\n}\n\nexport function back(s: RegistratieState): RegistratieState {\n  if (s.tag !== 'Invullen' || s.cursor === 0) return s;\n  return { ...s, cursor: s.cursor - 1, errors: {} };\n}\n\n/** Jump back to an earlier step to correct data (controle → step N). Forward\n    jumps are not allowed (would skip validation). Preserves the draft. */\nexport function gaNaarStap(s: RegistratieState, cursor: number): RegistratieState {\n  if (s.tag !== 'Invullen' || cursor < 0 || cursor >= s.cursor) return s;\n  return { ...s, cursor, errors: {} };\n}\n\nexport function submit(s: RegistratieState): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  const r = validateAll(s.draft, s.upload);\n  return r.ok ? { tag: 'Indienen', data: r.value } : { ...s, errors: r.error };\n}\n\n/** Route an upload sub-message through the pure upload reducer (Invullen only). */\nexport function upload(s: RegistratieState, msg: UploadMsg): RegistratieState {\n  if (s.tag !== 'Invullen') return s;\n  return { ...s, upload: reduceUpload(s.upload, msg) };\n}\n\nexport function resolve(s: RegistratieState, r: Result<string, string>): RegistratieState {\n  if (s.tag !== 'Indienen') return s;\n  return r.ok ? { tag: 'Ingediend', data: s.data, referentie: r.value } : { tag: 'Mislukt', data: s.data, error: r.error };\n}\n\nexport type RegistratieMsg =\n  | { tag: 'SetField'; key: DraftField; value: string }\n  | { tag: 'SetCorrespondentie'; value: Correspondentie }\n  | { tag: 'PrefillAdres'; straat: string; postcode: string; woonplaats: string }\n  | { tag: 'KiesDiploma'; diplomaId: string; beroep: string; vraagIds: string[] }\n  | { tag: 'KiesHandmatig'; vraagIds: string[] }\n  | { tag: 'DeclareerBeroep'; beroep: string }\n  | { tag: 'SetAntwoord'; vraagId: string; value: string }\n  | { tag: 'Next' }\n  | { tag: 'Back' }\n  | { tag: 'GaNaarStap'; cursor: number }\n  | { tag: 'Submit' }\n  | { tag: 'Retry' }\n  | { tag: 'SubmitConfirmed'; referentie: string }\n  | { tag: 'SubmitFailed'; error: string }\n  | { tag: 'Upload'; msg: UploadMsg }\n  | { tag: 'Seed'; state: RegistratieState };\n\nexport function reduce(s: RegistratieState, m: RegistratieMsg): RegistratieState {\n  switch (m.tag) {\n    case 'SetField':\n      return setField(s, m.key, m.value);\n    case 'SetCorrespondentie':\n      return setCorrespondentie(s, m.value);\n    case 'PrefillAdres':\n      return prefillAdres(s, m.straat, m.postcode, m.woonplaats);\n    case 'KiesDiploma':\n      return kiesDiploma(s, m.diplomaId, m.beroep, m.vraagIds);\n    case 'KiesHandmatig':\n      return kiesHandmatig(s, m.vraagIds);\n    case 'DeclareerBeroep':\n      return declareerBeroep(s, m.beroep);\n    case 'SetAntwoord':\n      return setAntwoord(s, m.vraagId, m.value);\n    case 'Next':\n      return next(s);\n    case 'Back':\n      return back(s);\n    case 'GaNaarStap':\n      return gaNaarStap(s, m.cursor);\n    case 'Submit':\n      return submit(s);\n    case 'Retry':\n      return s.tag === 'Mislukt' ? { tag: 'Indienen', data: s.data } : s;\n    case 'SubmitConfirmed':\n      return s.tag === 'Indienen' ? { tag: 'Ingediend', data: s.data, referentie: m.referentie } : s;\n    case 'SubmitFailed':\n      return s.tag === 'Indienen' ? { tag: 'Mislukt', data: s.data, error: m.error } : s;\n    case 'Upload':\n      return upload(s, m.msg);\n    case 'Seed':\n      return m.state;\n    default:\n      return assertNever(m);\n  }\n}\n",
            "properties": [
                {
                    "name": "adres",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "literal type",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 53
                },
                {
                    "name": "adresHerkomst",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AdresHerkomst",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 54
                },
                {
                    "name": "antwoorden",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Record<string | string>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 60
                },
                {
                    "name": "beroep",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 59
                },
                {
                    "name": "correspondentie",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Correspondentie",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 55
                },
                {
                    "name": "diplomaHerkomst",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DiplomaHerkomst",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 58
                },
                {
                    "name": "diplomaId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 57
                },
                {
                    "name": "documents",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Array<literal type>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 61
                },
                {
                    "name": "email",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Email",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 56
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>What we have after the controle step parses — guaranteed valid/typed.</p>\n",
            "rawdescription": "\nWhat we have after the controle step parses — guaranteed valid/typed.",
            "methods": [],
            "extends": []
        },
        {
            "name": "WizardError",
            "id": "interface-WizardError-c062793e6e171bbdf865e41ff4821985a6d914223cb984929df0817df0b0e2e938a0544e400217c743c52ecb4276a8b77dd95e8b8d56367ad90367f530f4e027",
            "file": "src/app/shared/layout/wizard-shell/wizard-shell.component.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Component, ElementRef, effect, input, output, untracked, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { SpinnerComponent } from '@shared/ui/spinner/spinner.component';\nimport { StepperComponent } from '@shared/ui/stepper/stepper.component';\n\n/** CIBG procesnavigatie primary-button copy for a non-final step: \"Naar stap 2 - Werk\".\n    Shared so every wizard's `primaryLabel` reads the same way. */\nexport const naarStapLabel = (stepNumber: number, stepLabel: string) =>\n  $localize`:@@wizard.naarStap:Naar stap ${stepNumber}:nummer: - ${stepLabel}:label:`;\n\n/** A flat validation error pointing at a field: `id` matches the field's anchor. */\nexport interface WizardError {\n  readonly id: string;\n  readonly message: string;\n}\n\nexport type WizardStatus = 'editing' | 'submitting' | 'submitted' | 'failed';\n\n/**\n * Template: the canonical shell every wizard renders into, so they cannot drift.\n * It owns the consistent outline — CIBG stappenindicator (title merged in) + error\n * summary + the horizontal <form> + the CIBG procesnavigatie button row + the\n * submitting/submitted/failed states — and the a11y focus management.\n *\n * Presentational and unidirectional: all state stays in the wizard container\n * (the Elm-style store). Inputs flow down; the container reacts to the outputs\n * and dispatches messages. The step's own fields are projected as the default\n * slot; the success screen is projected via [wizardSuccess].\n */\n@Component({\n  selector: 'app-wizard-shell',\n  imports: [FormsModule, ButtonComponent, AlertComponent, SpinnerComponent, StepperComponent],\n  styles: [`\n    .es-title{margin:0 0 var(--rhc-space-max-sm)}\n    .es-list{margin:0;padding-inline-start:var(--rhc-space-max-xl)}\n    /* Default link color doesn't meet contrast on the error-alert's light-red surface. */\n    .es-list a{color:var(--rhc-color-lintblauw-700)}\n  `],\n  template: `\n    @switch (status()) {\n      @case ('editing') {\n        <app-stepper class=\"app-section\" [steps]=\"steps()\" [current]=\"current()\"\n          [processName]=\"processName()\" [stepTitle]=\"stepTitle()\" (stepSelected)=\"goToStep.emit($event)\" />\n        @if (errors().length) {\n          <div #errorSummary tabindex=\"-1\" role=\"alert\" aria-labelledby=\"wizard-error-title\" class=\"app-section\">\n            <app-alert type=\"error\">\n              <h3 id=\"wizard-error-title\" class=\"es-title\" i18n=\"@@wizard.errorTitle\">Er ging iets mis met uw invoer</h3>\n              <ul class=\"es-list\">\n                @for (e of errors(); track e.id) {\n                  <li><a [href]=\"'#' + e.id\" (click)=\"goToField($event, e.id)\">{{ e.message }}</a></li>\n                }\n              </ul>\n            </app-alert>\n          </div>\n        }\n        <form (ngSubmit)=\"primary.emit()\" class=\"form-horizontal app-section\">\n          <div class=\"form-header\">\n            <div class=\"form-action\"><span class=\"meta\" i18n=\"@@form.verplichteVelden\">* verplichte velden</span></div>\n          </div>\n          <ng-content />\n          <hr />\n          <div class=\"d-flex flex-column flex-sm-row-reverse\">\n            <div class=\"m-0\"><app-button type=\"submit\" variant=\"primary\">{{ primaryLabel() }}</app-button></div>\n            @if (canGoBack()) {\n              <app-button type=\"button\" variant=\"subtle\" class=\"me-auto\" (click)=\"back.emit()\" i18n=\"@@wizard.terugVorige\">Terug naar vorige stap</app-button>\n            }\n          </div>\n          <div class=\"app-section\">\n            <app-button type=\"button\" variant=\"subtle\" (click)=\"cancel.emit()\" i18n=\"@@wizard.annuleren\">Annuleren</app-button>\n          </div>\n        </form>\n      }\n      @case ('submitting') {\n        <app-spinner /> <span>{{ submittingLabel() }}</span>\n      }\n      @case ('submitted') {\n        <ng-content select=\"[wizardSuccess]\" />\n      }\n      @case ('failed') {\n        <app-alert type=\"error\">{{ errorMessage() }}</app-alert>\n        <div class=\"app-section\">\n          <app-button variant=\"secondary\" (click)=\"retry.emit()\" i18n=\"@@wizard.opnieuwProberen\">Opnieuw proberen</app-button>\n        </div>\n      }\n    }\n  `,\n})\nexport class WizardShellComponent {\n  steps = input.required<string[]>();\n  current = input.required<number>();\n  stepTitle = input.required<string>();\n  /** Overall process name, shown above the step title (e.g. \"Herregistratie aanvragen\"). */\n  processName = input('');\n  status = input.required<WizardStatus>();\n  primaryLabel = input.required<string>();\n  canGoBack = input(false);\n  errors = input<readonly WizardError[]>([]);\n  errorMessage = input('');\n  submittingLabel = input($localize`:@@wizard.submitting:Aanvraag wordt verwerkt…`);\n\n  primary = output<void>();\n  back = output<void>();\n  cancel = output<void>();\n  retry = output<void>();\n  /** A visited step number was clicked in the stepper — back-navigation only. */\n  goToStep = output<number>();\n\n  /** Error-summary link: focus the field instead of letting the browser navigate.\n      A fragment href resolves against <base href=\"/\">, not the current route, so\n      a real navigation would reload to \"/\" and bounce to login. */\n  protected goToField(ev: Event, id: string) {\n    ev.preventDefault();\n    document.getElementById(id)?.focus(); // focus() scrolls the input into view\n  }\n\n  private stepper = viewChild(StepperComponent);\n  private errorSummary = viewChild<ElementRef<HTMLElement>>('errorSummary');\n\n  constructor() {\n    // A11y: move focus to the step title when the step changes (skip first run\n    // so we don't grab focus on initial load). Tracks current(), which is value-\n    // stable across keystrokes, so typing never steals focus.\n    let firstStep = true;\n    effect(() => {\n      this.current();\n      if (firstStep) { firstStep = false; return; }\n      untracked(() => queueMicrotask(() => this.stepper()?.focusTitle()));\n    });\n    // A11y: when validation errors first appear (after a failed submit), move\n    // focus to the error summary so it's announced. Only on the rising edge\n    // (none → some): typing rebuilds the errors array each keystroke, and\n    // re-focusing then would scroll the page up mid-edit. The summary keeps\n    // role=\"alert\", so content changes are still announced without the jump.\n    let firstErr = true;\n    let hadErrors = false;\n    effect(() => {\n      const has = this.errors().length > 0;\n      if (firstErr) { firstErr = false; hadErrors = has; return; }\n      if (has && !hadErrors) untracked(() => queueMicrotask(() => this.errorSummary()?.nativeElement.focus()));\n      hadErrors = has;\n    });\n  }\n}\n",
            "properties": [
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 15,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "message",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 16,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>A flat validation error pointing at a field: <code>id</code> matches the field&#39;s anchor.</p>\n",
            "rawdescription": "\nA flat validation error pointing at a field: `id` matches the field's anchor.",
            "methods": [],
            "extends": []
        },
        {
            "name": "XhrUploadHandle",
            "id": "interface-XhrUploadHandle-5fab28e6a8d389767caddf0e34edcd3013f54e6fdf3e82341e2ed7e9ef1035fa5a5338c98630c1de1e65329cdd6d40d726b1885c5c3ee4eff5a462ea3e81fcd7",
            "file": "src/app/shared/upload/upload.adapter.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Injectable, computed, inject, resource } from '@angular/core';\nimport {\n  ApiClient,\n  DocumentCategoryDto,\n  UploadStatusItemDto,\n} from '@shared/infrastructure/api-client';\nimport { problemDetail } from '@shared/infrastructure/api-error';\nimport { currentScenario } from '@shared/infrastructure/scenario';\nimport { environment } from '../../../environments/environment';\nimport { DocumentCategory } from './upload.machine';\n\n/** Answer-derived query params that affect which categories the server presents. */\nexport interface CategoryParams {\n  diplomaHerkomst?: string;\n  taalvaardigheid?: string;\n}\n\n/** One arrived/known status item from poll-on-return. */\nexport interface StatusItem {\n  localId: string;\n  status: string; // 'complete' | 'unknown'\n  documentId?: string;\n}\n\nexport interface XhrUploadRequest {\n  localId: string;\n  categoryId: string;\n  wizardId: string;\n  file: File;\n}\n\n/** A live upload: progress is reported via the callback; cancel aborts the XHR. */\nexport interface XhrUploadHandle {\n  done: Promise<{ documentId: string }>;\n  cancel: () => void;\n}\n\n/** Sentinel rejection so the caller can tell a user-cancel from a real failure. */\nexport const UPLOAD_ABORTED = Symbol('upload-aborted');\n\n/**\n * Infrastructure: the only place upload HTTP lives. Reads (categories, status,\n * delete) go through the NSwag client; the multipart POST is hand-written XHR\n * because the generated client is JSON-only (the endpoint is ExcludeFromDescription)\n * and we need upload-progress events + cancellation, which fetch can't give us.\n */\n@Injectable({ providedIn: 'root' })\nexport class UploadAdapter {\n  private client = inject(ApiClient);\n\n  /** Categories are server-owned; some depend on answers (e.g. registratie's diploma\n      set varies by DUO/handmatig + course language). `extra` makes the resource reactive\n      so it re-fetches when those answers change. */\n  categoriesResource(wizardId: string, extra?: () => CategoryParams) {\n    // Structural equality so we re-fetch only when a category-affecting answer changes,\n    // not on every unrelated draft edit (a computed with `equal` returns the cached\n    // reference while equal, so the resource sees no change).\n    const params = computed(\n      () => ({ wizardId, diplomaHerkomst: extra?.().diplomaHerkomst, taalvaardigheid: extra?.().taalvaardigheid }),\n      { equal: (a, b) => a.wizardId === b.wizardId && a.diplomaHerkomst === b.diplomaHerkomst && a.taalvaardigheid === b.taalvaardigheid },\n    );\n    return resource({\n      params,\n      loader: ({ params }) =>\n        this.client.categories(params.wizardId, params.diplomaHerkomst, params.taalvaardigheid).then((r) => (r.categories ?? []).map(toCategory)),\n    });\n  }\n\n  /** Poll-on-return: which client localIds have arrived at the BFF. */\n  status(localIds: string[]): Promise<StatusItem[]> {\n    if (localIds.length === 0) return Promise.resolve([]);\n    return this.client.status(localIds.join(',')).then((r) => (r.results ?? []).map(toStatusItem));\n  }\n\n  /** User delete; throws a ProblemDetails (e.g. 409 once linked) the caller maps. */\n  deleteDocument(documentId: string): Promise<void> {\n    return this.client.uploads(documentId);\n  }\n\n  /**\n   * Direct URL to the stored bytes, for a preview/download link (`<a href>`) — the\n   * server serves it inline for pdf/image, attachment otherwise. Not a fetch: the\n   * browser opens it. demo-* ids (dev simulation) have no bytes and 404 here.\n   */\n  contentUrl(documentId: string): string {\n    return `${environment.apiBaseUrl}/api/v1/uploads/${documentId}/content`;\n  }\n\n  /**\n   * Multipart upload with progress + cancel. ponytail: XHR (not fetch keepalive) —\n   * progress events need XHR; the keepalive/background gap is covered by\n   * poll-on-return (UploadShellService.pollReturning). Swap in a Service Worker\n   * transport behind UploadTransport for true background sync.\n   */\n  xhrUpload(req: XhrUploadRequest, onProgress: (pct: number) => void): XhrUploadHandle {\n    const scenario = currentScenario();\n    if (scenario === 'upload-slow' || scenario === 'upload-fail') return simulateUpload(scenario, onProgress);\n\n    const xhr = new XMLHttpRequest();\n    const form = new FormData();\n    form.append('file', req.file);\n    form.append('categoryId', req.categoryId);\n    form.append('localId', req.localId);\n    form.append('wizardId', req.wizardId);\n\n    let aborted = false;\n    const done = new Promise<{ documentId: string }>((resolve, reject) => {\n      xhr.upload.addEventListener('progress', (e) => {\n        if (e.lengthComputable) onProgress(Math.round((e.loaded / e.total) * 100));\n      });\n      xhr.addEventListener('load', () => {\n        if (xhr.status >= 200 && xhr.status < 300) {\n          try {\n            resolve({ documentId: JSON.parse(xhr.responseText).documentId });\n          } catch {\n            reject(genericError());\n          }\n        } else {\n          reject(parseError(xhr.responseText));\n        }\n      });\n      xhr.addEventListener('error', () => reject(genericError()));\n      xhr.addEventListener('abort', () => (aborted ? reject(UPLOAD_ABORTED) : reject(genericError())));\n    });\n\n    xhr.open('POST', `${environment.apiBaseUrl}/api/v1/uploads`);\n    xhr.send(form);\n    return { done, cancel: () => ((aborted = true), xhr.abort()) };\n  }\n}\n\nconst UPLOAD_FAILED = $localize`:@@upload.failed:Uploaden is niet gelukt. Probeer het opnieuw.`;\nconst genericError = (): string => UPLOAD_FAILED;\n\n/**\n * Demo-only (dev): the real XHR POST finishes instantly for metadata, so progress\n * and failure can't otherwise be shown. Drives the progress bar over ~2.5s, then\n * succeeds (`upload-slow`) or fails (`upload-fail`). ponytail: timer-based, cancel\n * via the returned handle; no network.\n */\nfunction simulateUpload(scenario: 'upload-slow' | 'upload-fail', onProgress: (pct: number) => void): XhrUploadHandle {\n  let pct = 0;\n  let cancelled = false;\n  const done = new Promise<{ documentId: string }>((resolve, reject) => {\n    const tick = () => {\n      if (cancelled) {\n        reject(UPLOAD_ABORTED);\n      } else if (pct < 100) {\n        pct += 10;\n        onProgress(Math.min(pct, 100));\n        setTimeout(tick, 250);\n      } else if (scenario === 'upload-fail') {\n        reject(UPLOAD_FAILED);\n      } else {\n        resolve({ documentId: `demo-${crypto.randomUUID()}` });\n      }\n    };\n    setTimeout(tick, 250);\n  });\n  return { done, cancel: () => void (cancelled = true) };\n}\nconst parseError = (body: string): string => {\n  try {\n    return problemDetail(JSON.parse(body), UPLOAD_FAILED);\n  } catch {\n    return genericError();\n  }\n};\n\n/** Wire DTO (all fields optional) → domain. */\nfunction toCategory(c: DocumentCategoryDto): DocumentCategory {\n  return {\n    categoryId: c.categoryId ?? '',\n    label: c.label ?? '',\n    description: c.description ?? '',\n    required: c.required ?? false,\n    acceptedTypes: c.acceptedTypes ?? [],\n    maxSizeMb: c.maxSizeMb ?? 0,\n    multiple: c.multiple ?? false,\n    allowPostDelivery: c.allowPostDelivery ?? false,\n  };\n}\n\nfunction toStatusItem(s: UploadStatusItemDto): StatusItem {\n  return { localId: s.localId ?? '', status: s.status ?? 'unknown', documentId: s.documentId ?? undefined };\n}\n",
            "properties": [
                {
                    "name": "cancel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 35
                },
                {
                    "name": "done",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Promise<literal type>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 34
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>A live upload: progress is reported via the callback; cancel aborts the XHR.</p>\n",
            "rawdescription": "\nA live upload: progress is reported via the callback; cancel aborts the XHR.",
            "methods": [],
            "extends": []
        },
        {
            "name": "XhrUploadRequest",
            "id": "interface-XhrUploadRequest-5fab28e6a8d389767caddf0e34edcd3013f54e6fdf3e82341e2ed7e9ef1035fa5a5338c98630c1de1e65329cdd6d40d726b1885c5c3ee4eff5a462ea3e81fcd7",
            "file": "src/app/shared/upload/upload.adapter.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Injectable, computed, inject, resource } from '@angular/core';\nimport {\n  ApiClient,\n  DocumentCategoryDto,\n  UploadStatusItemDto,\n} from '@shared/infrastructure/api-client';\nimport { problemDetail } from '@shared/infrastructure/api-error';\nimport { currentScenario } from '@shared/infrastructure/scenario';\nimport { environment } from '../../../environments/environment';\nimport { DocumentCategory } from './upload.machine';\n\n/** Answer-derived query params that affect which categories the server presents. */\nexport interface CategoryParams {\n  diplomaHerkomst?: string;\n  taalvaardigheid?: string;\n}\n\n/** One arrived/known status item from poll-on-return. */\nexport interface StatusItem {\n  localId: string;\n  status: string; // 'complete' | 'unknown'\n  documentId?: string;\n}\n\nexport interface XhrUploadRequest {\n  localId: string;\n  categoryId: string;\n  wizardId: string;\n  file: File;\n}\n\n/** A live upload: progress is reported via the callback; cancel aborts the XHR. */\nexport interface XhrUploadHandle {\n  done: Promise<{ documentId: string }>;\n  cancel: () => void;\n}\n\n/** Sentinel rejection so the caller can tell a user-cancel from a real failure. */\nexport const UPLOAD_ABORTED = Symbol('upload-aborted');\n\n/**\n * Infrastructure: the only place upload HTTP lives. Reads (categories, status,\n * delete) go through the NSwag client; the multipart POST is hand-written XHR\n * because the generated client is JSON-only (the endpoint is ExcludeFromDescription)\n * and we need upload-progress events + cancellation, which fetch can't give us.\n */\n@Injectable({ providedIn: 'root' })\nexport class UploadAdapter {\n  private client = inject(ApiClient);\n\n  /** Categories are server-owned; some depend on answers (e.g. registratie's diploma\n      set varies by DUO/handmatig + course language). `extra` makes the resource reactive\n      so it re-fetches when those answers change. */\n  categoriesResource(wizardId: string, extra?: () => CategoryParams) {\n    // Structural equality so we re-fetch only when a category-affecting answer changes,\n    // not on every unrelated draft edit (a computed with `equal` returns the cached\n    // reference while equal, so the resource sees no change).\n    const params = computed(\n      () => ({ wizardId, diplomaHerkomst: extra?.().diplomaHerkomst, taalvaardigheid: extra?.().taalvaardigheid }),\n      { equal: (a, b) => a.wizardId === b.wizardId && a.diplomaHerkomst === b.diplomaHerkomst && a.taalvaardigheid === b.taalvaardigheid },\n    );\n    return resource({\n      params,\n      loader: ({ params }) =>\n        this.client.categories(params.wizardId, params.diplomaHerkomst, params.taalvaardigheid).then((r) => (r.categories ?? []).map(toCategory)),\n    });\n  }\n\n  /** Poll-on-return: which client localIds have arrived at the BFF. */\n  status(localIds: string[]): Promise<StatusItem[]> {\n    if (localIds.length === 0) return Promise.resolve([]);\n    return this.client.status(localIds.join(',')).then((r) => (r.results ?? []).map(toStatusItem));\n  }\n\n  /** User delete; throws a ProblemDetails (e.g. 409 once linked) the caller maps. */\n  deleteDocument(documentId: string): Promise<void> {\n    return this.client.uploads(documentId);\n  }\n\n  /**\n   * Direct URL to the stored bytes, for a preview/download link (`<a href>`) — the\n   * server serves it inline for pdf/image, attachment otherwise. Not a fetch: the\n   * browser opens it. demo-* ids (dev simulation) have no bytes and 404 here.\n   */\n  contentUrl(documentId: string): string {\n    return `${environment.apiBaseUrl}/api/v1/uploads/${documentId}/content`;\n  }\n\n  /**\n   * Multipart upload with progress + cancel. ponytail: XHR (not fetch keepalive) —\n   * progress events need XHR; the keepalive/background gap is covered by\n   * poll-on-return (UploadShellService.pollReturning). Swap in a Service Worker\n   * transport behind UploadTransport for true background sync.\n   */\n  xhrUpload(req: XhrUploadRequest, onProgress: (pct: number) => void): XhrUploadHandle {\n    const scenario = currentScenario();\n    if (scenario === 'upload-slow' || scenario === 'upload-fail') return simulateUpload(scenario, onProgress);\n\n    const xhr = new XMLHttpRequest();\n    const form = new FormData();\n    form.append('file', req.file);\n    form.append('categoryId', req.categoryId);\n    form.append('localId', req.localId);\n    form.append('wizardId', req.wizardId);\n\n    let aborted = false;\n    const done = new Promise<{ documentId: string }>((resolve, reject) => {\n      xhr.upload.addEventListener('progress', (e) => {\n        if (e.lengthComputable) onProgress(Math.round((e.loaded / e.total) * 100));\n      });\n      xhr.addEventListener('load', () => {\n        if (xhr.status >= 200 && xhr.status < 300) {\n          try {\n            resolve({ documentId: JSON.parse(xhr.responseText).documentId });\n          } catch {\n            reject(genericError());\n          }\n        } else {\n          reject(parseError(xhr.responseText));\n        }\n      });\n      xhr.addEventListener('error', () => reject(genericError()));\n      xhr.addEventListener('abort', () => (aborted ? reject(UPLOAD_ABORTED) : reject(genericError())));\n    });\n\n    xhr.open('POST', `${environment.apiBaseUrl}/api/v1/uploads`);\n    xhr.send(form);\n    return { done, cancel: () => ((aborted = true), xhr.abort()) };\n  }\n}\n\nconst UPLOAD_FAILED = $localize`:@@upload.failed:Uploaden is niet gelukt. Probeer het opnieuw.`;\nconst genericError = (): string => UPLOAD_FAILED;\n\n/**\n * Demo-only (dev): the real XHR POST finishes instantly for metadata, so progress\n * and failure can't otherwise be shown. Drives the progress bar over ~2.5s, then\n * succeeds (`upload-slow`) or fails (`upload-fail`). ponytail: timer-based, cancel\n * via the returned handle; no network.\n */\nfunction simulateUpload(scenario: 'upload-slow' | 'upload-fail', onProgress: (pct: number) => void): XhrUploadHandle {\n  let pct = 0;\n  let cancelled = false;\n  const done = new Promise<{ documentId: string }>((resolve, reject) => {\n    const tick = () => {\n      if (cancelled) {\n        reject(UPLOAD_ABORTED);\n      } else if (pct < 100) {\n        pct += 10;\n        onProgress(Math.min(pct, 100));\n        setTimeout(tick, 250);\n      } else if (scenario === 'upload-fail') {\n        reject(UPLOAD_FAILED);\n      } else {\n        resolve({ documentId: `demo-${crypto.randomUUID()}` });\n      }\n    };\n    setTimeout(tick, 250);\n  });\n  return { done, cancel: () => void (cancelled = true) };\n}\nconst parseError = (body: string): string => {\n  try {\n    return problemDetail(JSON.parse(body), UPLOAD_FAILED);\n  } catch {\n    return genericError();\n  }\n};\n\n/** Wire DTO (all fields optional) → domain. */\nfunction toCategory(c: DocumentCategoryDto): DocumentCategory {\n  return {\n    categoryId: c.categoryId ?? '',\n    label: c.label ?? '',\n    description: c.description ?? '',\n    required: c.required ?? false,\n    acceptedTypes: c.acceptedTypes ?? [],\n    maxSizeMb: c.maxSizeMb ?? 0,\n    multiple: c.multiple ?? false,\n    allowPostDelivery: c.allowPostDelivery ?? false,\n  };\n}\n\nfunction toStatusItem(s: UploadStatusItemDto): StatusItem {\n  return { localId: s.localId ?? '', status: s.status ?? 'unknown', documentId: s.documentId ?? undefined };\n}\n",
            "properties": [
                {
                    "name": "categoryId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 27
                },
                {
                    "name": "file",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "File",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 29
                },
                {
                    "name": "localId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 26
                },
                {
                    "name": "wizardId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 28
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        }
    ],
    "injectables": [
        {
            "name": "ApplicationsAdapter",
            "id": "injectable-ApplicationsAdapter-decc5283d20cc7bea9e087c502eabac8e4e371576b76b980d35039fe7efb87e14da8856a6f39723a32274565d7164fe1c31447844fc03d67ed524753a3d13bfe",
            "file": "src/app/registratie/infrastructure/applications.adapter.ts",
            "properties": [
                {
                    "name": "client",
                    "defaultValue": "inject(ApiClient)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 23,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methods": [
                {
                    "name": "cancel",
                    "args": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 45,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nCancel a Concept (cascades to its unlinked documents server-side).",
                    "description": "<p>Cancel a Concept (cascades to its unlinked documents server-side).</p>\n",
                    "jsdoctags": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "create",
                    "args": [
                        {
                            "name": "type",
                            "type": "AanvraagType",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<string>",
                    "typeParameters": [],
                    "line": 35,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nCreate a Concept for a wizard type; resolves to the new aanvraag id.",
                    "description": "<p>Create a Concept for a wizard type; resolves to the new aanvraag id.</p>\n",
                    "jsdoctags": [
                        {
                            "name": "type",
                            "type": "AanvraagType",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "detail",
                    "args": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<ApplicationDetailDto>",
                    "typeParameters": [],
                    "line": 30,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "list",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<ApplicationSummaryDto[]>",
                    "typeParameters": [],
                    "line": 26,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nThe dashboard's application list (raw DTOs; the store parses at the boundary).",
                    "description": "<p>The dashboard&#39;s application list (raw DTOs; the store parses at the boundary).</p>\n"
                },
                {
                    "name": "submit",
                    "args": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "body",
                            "type": "SubmitApplicationRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<SubmitApplicationResponse>",
                    "typeParameters": [],
                    "line": 49,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "body",
                            "type": "SubmitApplicationRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "syncDraft",
                    "args": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "body",
                            "type": "DraftSyncRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 40,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nDraft sync per step (idempotent). Keep it debounced at the call site — it is chatty.",
                    "description": "<p>Draft sync per step (idempotent). Keep it debounced at the call site — it is chatty.</p>\n",
                    "jsdoctags": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "body",
                            "type": "DraftSyncRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>Infrastructure adapter for the backend-owned Aanvraag aggregate — the only place\nits HTTP lives (ADR-0001 anti-corruption boundary). The list is a resource; the\nmutations (create/sync/cancel/submit) are thin commands the ApplicationsStore\norchestrates optimistically. The untrusted response is validated + mapped to\ndomain by the hand-written parse* boundary below.</p>\n",
            "rawdescription": "\n\nInfrastructure adapter for the backend-owned Aanvraag aggregate — the only place\nits HTTP lives (ADR-0001 anti-corruption boundary). The list is a resource; the\nmutations (create/sync/cancel/submit) are thin commands the ApplicationsStore\norchestrates optimistically. The untrusted response is validated + mapped to\ndomain by the hand-written parse* boundary below.\n",
            "sourceCode": "import { Injectable, inject } from '@angular/core';\nimport { Result, ok, err } from '@shared/kernel/fp';\nimport {\n  ApiClient,\n  AanvraagStatusDto,\n  ApplicationSummaryDto,\n  ApplicationDetailDto,\n  DraftSyncRequest,\n  SubmitApplicationRequest,\n  SubmitApplicationResponse,\n} from '@shared/infrastructure/api-client';\nimport { Aanvraag, AanvraagDetail, AanvraagStatus, AanvraagType } from '@registratie/domain/aanvraag';\n\n/**\n * Infrastructure adapter for the backend-owned Aanvraag aggregate — the only place\n * its HTTP lives (ADR-0001 anti-corruption boundary). The list is a resource; the\n * mutations (create/sync/cancel/submit) are thin commands the ApplicationsStore\n * orchestrates optimistically. The untrusted response is validated + mapped to\n * domain by the hand-written parse* boundary below.\n */\n@Injectable({ providedIn: 'root' })\nexport class ApplicationsAdapter {\n  private client = inject(ApiClient);\n\n  /** The dashboard's application list (raw DTOs; the store parses at the boundary). */\n  list(): Promise<ApplicationSummaryDto[]> {\n    return this.client.applicationsAll();\n  }\n\n  detail(id: string): Promise<ApplicationDetailDto> {\n    return this.client.applicationsGET(id);\n  }\n\n  /** Create a Concept for a wizard type; resolves to the new aanvraag id. */\n  create(type: AanvraagType): Promise<string> {\n    return this.client.applicationsPOST({ type }).then((d) => d.id ?? '');\n  }\n\n  /** Draft sync per step (idempotent). Keep it debounced at the call site — it is chatty. */\n  syncDraft(id: string, body: DraftSyncRequest): Promise<void> {\n    return this.client.applicationsPUT(id, body);\n  }\n\n  /** Cancel a Concept (cascades to its unlinked documents server-side). */\n  cancel(id: string): Promise<void> {\n    return this.client.applicationsDELETE(id);\n  }\n\n  submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n    return this.client.submit(id, body);\n  }\n}\n\nconst AANVRAAG_TYPES: readonly string[] = ['registratie', 'herregistratie', 'intake'];\n\n/** Trust-boundary parse of the status union — the tag drives which fields must exist. */\nexport function parseAanvraagStatus(s: AanvraagStatusDto | undefined): Result<string, AanvraagStatus> {\n  if (!s || typeof s.tag !== 'string') return err('aanvraag: missing status');\n  switch (s.tag) {\n    case 'Concept':\n      if (typeof s.stepIndex !== 'number' || typeof s.stepCount !== 'number') return err('aanvraag: bad Concept status');\n      return ok({ tag: 'Concept', stepIndex: s.stepIndex, stepCount: s.stepCount });\n    case 'InBehandeling':\n      if (typeof s.referentie !== 'string' || typeof s.manual !== 'boolean') return err('aanvraag: bad InBehandeling status');\n      return ok({ tag: 'InBehandeling', referentie: s.referentie, manual: s.manual });\n    case 'Goedgekeurd':\n      if (typeof s.referentie !== 'string') return err('aanvraag: bad Goedgekeurd status');\n      return ok({ tag: 'Goedgekeurd', referentie: s.referentie });\n    case 'Afgewezen':\n      if (typeof s.referentie !== 'string' || typeof s.reden !== 'string') return err('aanvraag: bad Afgewezen status');\n      return ok({ tag: 'Afgewezen', referentie: s.referentie, reden: s.reden });\n    default:\n      return err(`aanvraag: unknown status tag ${s.tag}`);\n  }\n}\n\nfunction parseCommon(dto: ApplicationSummaryDto): Result<string, Aanvraag> {\n  if (typeof dto.id !== 'string') return err('aanvraag: missing id');\n  if (typeof dto.type !== 'string' || !AANVRAAG_TYPES.includes(dto.type)) return err(`aanvraag: bad type ${dto.type}`);\n  if (typeof dto.createdAt !== 'string' || typeof dto.updatedAt !== 'string') return err('aanvraag: missing timestamps');\n  const status = parseAanvraagStatus(dto.status);\n  if (!status.ok) return status;\n  return ok({\n    id: dto.id,\n    type: dto.type as AanvraagType,\n    status: status.value,\n    documentIds: dto.documentIds ?? [],\n    createdAt: dto.createdAt,\n    updatedAt: dto.updatedAt,\n    submittedAt: dto.submittedAt,\n  });\n}\n\nexport function parseApplicationSummary(json: unknown): Result<string, Aanvraag> {\n  if (typeof json !== 'object' || json === null) return err('aanvraag: not an object');\n  return parseCommon(json as ApplicationSummaryDto);\n}\n\nexport function parseApplications(json: unknown): Result<string, Aanvraag[]> {\n  if (!Array.isArray(json)) return err('aanvragen: not an array');\n  const out: Aanvraag[] = [];\n  for (const item of json) {\n    const parsed = parseApplicationSummary(item);\n    if (!parsed.ok) return parsed;\n    out.push(parsed.value);\n  }\n  return ok(out);\n}\n\nexport function parseApplicationDetail(json: unknown): Result<string, AanvraagDetail> {\n  if (typeof json !== 'object' || json === null) return err('aanvraag: not an object');\n  const base = parseCommon(json as ApplicationDetailDto);\n  if (!base.ok) return base;\n  return ok({ ...base.value, draft: (json as ApplicationDetailDto).draft ?? null });\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "ApplicationsStore",
            "id": "injectable-ApplicationsStore-9a929a549a48bf1bf2b1e4697c5986e122972dc13948a88cdecb2cc4707febee09fa8e83496acc23c971c68591850939519a1661f77efea800dbeac4807c8520",
            "file": "src/app/registratie/application/applications.store.ts",
            "properties": [
                {
                    "name": "adapter",
                    "defaultValue": "inject(ApplicationsAdapter)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 19,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "applications",
                    "defaultValue": "this.state.asReadonly()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "state",
                    "defaultValue": "signal<RemoteData<Err, Aanvraag[]>>({ tag: 'Loading' })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 21,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methods": [
                {
                    "name": "cancel",
                    "args": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 47,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nCancel a Concept: drop it now (synchronous, guaranteed), then confirm the DELETE.\nNo resync — the delete succeeded, so the optimistic removal is authoritative.",
                    "description": "<p>Cancel a Concept: drop it now (synchronous, guaranteed), then confirm the DELETE.\nNo resync — the delete succeeded, so the optimistic removal is authoritative.</p>\n",
                    "modifierKind": [
                        134
                    ],
                    "jsdoctags": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "load",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 30,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nFetch + parse at the trust boundary, then publish as RemoteData. Keeps the\nlast-good value on a resync (only shows Loading on the first load).",
                    "description": "<p>Fetch + parse at the trust boundary, then publish as RemoteData. Keeps the\nlast-good value on a resync (only shows Loading on the first load).</p>\n",
                    "modifierKind": [
                        134
                    ]
                },
                {
                    "name": "reload",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 41,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nRe-fetch (e.g. on dashboard revisit) so auto-approval transitions show up.",
                    "description": "<p>Re-fetch (e.g. on dashboard revisit) so auto-approval transitions show up.</p>\n"
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>The dashboard&#39;s view of the user&#39;s applications (aanvragen) — the backend is the\nsystem of record (PRD 0001). One root singleton OWNS the list as a writable\nRemoteData signal (CLAUDE.md §3: change state only through methods). Cancel removes\nthe row SYNCHRONOUSLY, so the block disappears deterministically — no dependence on\nchange-detection timing, HTTP caching, or a resource <code>reload()</code>. <code>reload()</code> re-fetches\nso a page revisit reflects auto-approval (Concept → In behandeling → Goedgekeurd is\ncomputed server-side on read).</p>\n",
            "rawdescription": "\n\nThe dashboard's view of the user's applications (aanvragen) — the backend is the\nsystem of record (PRD 0001). One root singleton OWNS the list as a writable\nRemoteData signal (CLAUDE.md §3: change state only through methods). Cancel removes\nthe row SYNCHRONOUSLY, so the block disappears deterministically — no dependence on\nchange-detection timing, HTTP caching, or a resource `reload()`. `reload()` re-fetches\nso a page revisit reflects auto-approval (Concept → In behandeling → Goedgekeurd is\ncomputed server-side on read).\n",
            "sourceCode": "import { Injectable, inject, signal } from '@angular/core';\nimport { RemoteData } from '@shared/application/remote-data';\nimport { Aanvraag } from '@registratie/domain/aanvraag';\nimport { ApplicationsAdapter, parseApplications } from '@registratie/infrastructure/applications.adapter';\n\ntype Err = Error | undefined;\n\n/**\n * The dashboard's view of the user's applications (aanvragen) — the backend is the\n * system of record (PRD 0001). One root singleton OWNS the list as a writable\n * RemoteData signal (CLAUDE.md §3: change state only through methods). Cancel removes\n * the row SYNCHRONOUSLY, so the block disappears deterministically — no dependence on\n * change-detection timing, HTTP caching, or a resource `reload()`. `reload()` re-fetches\n * so a page revisit reflects auto-approval (Concept → In behandeling → Goedgekeurd is\n * computed server-side on read).\n */\n@Injectable({ providedIn: 'root' })\nexport class ApplicationsStore {\n  private adapter = inject(ApplicationsAdapter);\n\n  private state = signal<RemoteData<Err, Aanvraag[]>>({ tag: 'Loading' });\n  readonly applications = this.state.asReadonly();\n\n  constructor() {\n    void this.load();\n  }\n\n  /** Fetch + parse at the trust boundary, then publish as RemoteData. Keeps the\n      last-good value on a resync (only shows Loading on the first load). */\n  async load() {\n    if (this.state().tag !== 'Success') this.state.set({ tag: 'Loading' });\n    try {\n      const parsed = parseApplications(await this.adapter.list());\n      this.state.set(parsed.ok ? { tag: 'Success', value: parsed.value } : { tag: 'Failure', error: new Error(parsed.error) });\n    } catch (e) {\n      this.state.set({ tag: 'Failure', error: e as Error });\n    }\n  }\n\n  /** Re-fetch (e.g. on dashboard revisit) so auto-approval transitions show up. */\n  reload() {\n    void this.load();\n  }\n\n  /** Cancel a Concept: drop it now (synchronous, guaranteed), then confirm the DELETE.\n      No resync — the delete succeeded, so the optimistic removal is authoritative. */\n  async cancel(id: string) {\n    const before = this.state();\n    if (before.tag === 'Success') {\n      this.state.set({ tag: 'Success', value: before.value.filter((a) => a.id !== id) });\n    }\n    try {\n      await this.adapter.cancel(id);\n    } catch {\n      this.state.set(before); // roll back: the block reappears\n    }\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 22
            },
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "BigProfileStore",
            "id": "injectable-BigProfileStore-3f9a194c94a1529ae5b3cc36908ab937645546c3c07642555a6596bca458ff482b05353f089ad22303bc036da99d42fe3195c056c84632be1da9cbfeceae8b08",
            "file": "src/app/registratie/application/big-profile.store.ts",
            "properties": [
                {
                    "name": "aantekeningen",
                    "defaultValue": "computed<RemoteData<Err, Aantekening[]>>(() => {\n    const rd = fromResource(this.aantekeningenRes, (v) => !v || v.length === 0);\n    return rd.tag === 'Success' ? { tag: 'Success', value: rd.value ?? [] } : rd;\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Specialisms/notes stay a separate stream (they have their own empty state).</p>\n",
                    "line": 45,
                    "rawdescription": "\nSpecialisms/notes stay a separate stream (they have their own empty state).",
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "aantekeningenRes",
                    "defaultValue": "this.big.aantekeningenResource()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 28,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "big",
                    "defaultValue": "inject(BigRegisterAdapter)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 24,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "decisions",
                    "defaultValue": "computed<RemoteData<Err, HerregistratieDecisions>>(() => map(this.view(), (v) => v.decisions))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Server-computed decisions (e.g. herregistratie eligibility) — rendered, not recomputed.</p>\n",
                    "line": 42,
                    "rawdescription": "\nServer-computed decisions (e.g. herregistratie eligibility) — rendered, not recomputed.",
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "pending",
                    "defaultValue": "signal(false)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 51,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "pendingHerregistratie",
                    "defaultValue": "this.pending.asReadonly()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>True while a herregistratie submission is in flight or just submitted.</p>\n",
                    "line": 53,
                    "rawdescription": "\nTrue while a herregistratie submission is in flight or just submitted.",
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "profile",
                    "defaultValue": "computed<RemoteData<Err, BigProfile>>(() => map(this.view(), (v) => v.profile))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Registration + person, from the single aggregated call.</p>\n",
                    "line": 39,
                    "rawdescription": "\nRegistration + person, from the single aggregated call.",
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "view",
                    "defaultValue": "computed<RemoteData<Err, DashboardView>>(() => {\n    const rd = fromResource(this.viewRes);\n    if (rd.tag !== 'Success') return rd;\n    const parsed = parseDashboardView(rd.value);\n    return parsed.ok ? { tag: 'Success', value: parsed.value } : { tag: 'Failure', error: new Error(parsed.error) };\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The aggregated view, validated at the trust boundary (DTO → domain).</p>\n",
                    "line": 31,
                    "rawdescription": "\nThe aggregated view, validated at the trust boundary (DTO → domain).",
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "viewAdapter",
                    "defaultValue": "inject(DashboardViewAdapter)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 25,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "viewRes",
                    "defaultValue": "this.viewAdapter.dashboardViewResource()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 27,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methods": [
                {
                    "name": "beginHerregistratie",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 55,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "confirmHerregistratie",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 58,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "rollbackHerregistratie",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 62,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>The single source of truth for the logged-in professional&#39;s profile, shared\nacross pages (providedIn:&#39;root&#39; = one instance). It owns the httpResources\n(created here, in the required injection context) and exposes them as\nRemoteData signals.</p>\n<p>The dashboard data now comes from ONE screen-shaped (&quot;BFF-lite&quot;) call that\nreturns registration + person + server-computed <code>decisions</code>. One request → one\nconsistent snapshot, instead of stitching three independently loading/erroring\nresources together client-side. See docs/architecture/0001-bff-lite-decision-dtos.md.</p>\n",
            "rawdescription": "\n\nThe single source of truth for the logged-in professional's profile, shared\nacross pages (providedIn:'root' = one instance). It owns the httpResources\n(created here, in the required injection context) and exposes them as\nRemoteData signals.\n\nThe dashboard data now comes from ONE screen-shaped (\"BFF-lite\") call that\nreturns registration + person + server-computed `decisions`. One request → one\nconsistent snapshot, instead of stitching three independently loading/erroring\nresources together client-side. See docs/architecture/0001-bff-lite-decision-dtos.md.\n",
            "sourceCode": "import { Injectable, computed, inject, signal } from '@angular/core';\nimport { RemoteData, fromResource, map } from '@shared/application/remote-data';\nimport { Aantekening } from '../domain/registration';\nimport { BigProfile } from '../domain/big-profile';\nimport { HerregistratieDecisions } from '../contracts/dashboard-view.dto';\nimport { BigRegisterAdapter } from '../infrastructure/big-register.adapter';\nimport { DashboardView, DashboardViewAdapter, parseDashboardView } from '../infrastructure/dashboard-view.adapter';\n\ntype Err = Error | undefined;\n\n/**\n * The single source of truth for the logged-in professional's profile, shared\n * across pages (providedIn:'root' = one instance). It owns the httpResources\n * (created here, in the required injection context) and exposes them as\n * RemoteData signals.\n *\n * The dashboard data now comes from ONE screen-shaped (\"BFF-lite\") call that\n * returns registration + person + server-computed `decisions`. One request → one\n * consistent snapshot, instead of stitching three independently loading/erroring\n * resources together client-side. See docs/architecture/0001-bff-lite-decision-dtos.md.\n */\n@Injectable({ providedIn: 'root' })\nexport class BigProfileStore {\n  private big = inject(BigRegisterAdapter);\n  private viewAdapter = inject(DashboardViewAdapter);\n\n  private viewRes = this.viewAdapter.dashboardViewResource();\n  private aantekeningenRes = this.big.aantekeningenResource();\n\n  /** The aggregated view, validated at the trust boundary (DTO → domain). */\n  private view = computed<RemoteData<Err, DashboardView>>(() => {\n    const rd = fromResource(this.viewRes);\n    if (rd.tag !== 'Success') return rd;\n    const parsed = parseDashboardView(rd.value);\n    return parsed.ok ? { tag: 'Success', value: parsed.value } : { tag: 'Failure', error: new Error(parsed.error) };\n  });\n\n  /** Registration + person, from the single aggregated call. */\n  readonly profile = computed<RemoteData<Err, BigProfile>>(() => map(this.view(), (v) => v.profile));\n\n  /** Server-computed decisions (e.g. herregistratie eligibility) — rendered, not recomputed. */\n  readonly decisions = computed<RemoteData<Err, HerregistratieDecisions>>(() => map(this.view(), (v) => v.decisions));\n\n  /** Specialisms/notes stay a separate stream (they have their own empty state). */\n  readonly aantekeningen = computed<RemoteData<Err, Aantekening[]>>(() => {\n    const rd = fromResource(this.aantekeningenRes, (v) => !v || v.length === 0);\n    return rd.tag === 'Success' ? { tag: 'Success', value: rd.value ?? [] } : rd;\n  });\n\n  // --- Optimistic herregistratie state, shared with the dashboard -----------\n  private pending = signal(false);\n  /** True while a herregistratie submission is in flight or just submitted. */\n  readonly pendingHerregistratie = this.pending.asReadonly();\n\n  beginHerregistratie() {\n    this.pending.set(true); // optimistic: show it immediately on the dashboard\n  }\n  confirmHerregistratie() {\n    this.pending.set(false);\n    this.viewRes.reload(); // invalidate: re-fetch the now-updated view (registration + decisions)\n  }\n  rollbackHerregistratie() {\n    this.pending.set(false); // submission failed — undo the optimistic flag\n  }\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "BigRegisterAdapter",
            "id": "injectable-BigRegisterAdapter-9dd4351ca55ec4a8e4afc1c6d4458880888844780163e7d72b0c9011509444a74e9f0364d9942d2b83e48e24a30fb2cb96d9e6ea7a5c5782916802c95d7c527d",
            "file": "src/app/registratie/infrastructure/big-register.adapter.ts",
            "properties": [
                {
                    "name": "client",
                    "defaultValue": "inject(ApiClient)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 16,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methods": [
                {
                    "name": "aantekeningenResource",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 18,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>Infrastructure adapter for the BIG-register source. Exposes signal-based\nresources (Angular&#39;s <code>resource</code> over the generated typed client); each returns\na Resource with status()/value()/error()/reload(). Call from an injection\ncontext (a field initializer in the store).</p>\n<p>Note: registration + person are now served via the aggregated dashboard-view\nendpoint (see DashboardViewAdapter). Only the notes stream remains separate.</p>\n",
            "rawdescription": "\n\nInfrastructure adapter for the BIG-register source. Exposes signal-based\nresources (Angular's `resource` over the generated typed client); each returns\na Resource with status()/value()/error()/reload(). Call from an injection\ncontext (a field initializer in the store).\n\nNote: registration + person are now served via the aggregated dashboard-view\nendpoint (see DashboardViewAdapter). Only the notes stream remains separate.\n",
            "sourceCode": "import { Injectable, inject, resource } from '@angular/core';\nimport { Aantekening, AantekeningType } from '../domain/registration';\nimport { ApiClient, AantekeningDto } from '@shared/infrastructure/api-client';\n\n/**\n * Infrastructure adapter for the BIG-register source. Exposes signal-based\n * resources (Angular's `resource` over the generated typed client); each returns\n * a Resource with status()/value()/error()/reload(). Call from an injection\n * context (a field initializer in the store).\n *\n * Note: registration + person are now served via the aggregated dashboard-view\n * endpoint (see DashboardViewAdapter). Only the notes stream remains separate.\n */\n@Injectable({ providedIn: 'root' })\nexport class BigRegisterAdapter {\n  private client = inject(ApiClient);\n\n  aantekeningenResource() {\n    return resource({ loader: () => this.client.notes().then((ns) => ns.map(toAantekening)) });\n  }\n}\n\n/** Map the wire DTO (all fields optional) onto our domain type. */\nfunction toAantekening(n: AantekeningDto): Aantekening {\n  return { type: n.type as AantekeningType, omschrijving: n.omschrijving ?? '', datum: n.datum ?? '' };\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "BriefAdapter",
            "id": "injectable-BriefAdapter-2cdc4ea68dd5d8941b52d3a3d324bdc1debb1e3cbeb7bb63c0d4dd1fc73b3b81b9fea5eb7cd8a3a9900f3fa0847318c385460cb0c7c8e3f98b841c4a958a185c",
            "file": "src/app/brief/infrastructure/brief.adapter.ts",
            "properties": [
                {
                    "name": "client",
                    "defaultValue": "inject(ApiClient)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 38,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methods": [
                {
                    "name": "approve",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<Result<string, Brief>>",
                    "typeParameters": [],
                    "line": 55,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        134
                    ]
                },
                {
                    "name": "load",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<Result<string, BriefView>>",
                    "typeParameters": [],
                    "line": 40,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        134
                    ]
                },
                {
                    "name": "reject",
                    "args": [
                        {
                            "name": "comments",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<Result<string, Brief>>",
                    "typeParameters": [],
                    "line": 60,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        134
                    ],
                    "jsdoctags": [
                        {
                            "name": "comments",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "reset",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<Result<string, BriefView>>",
                    "typeParameters": [],
                    "line": 71,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nDemo \"start over\" — recreate a fresh brief server-side and return the new view.",
                    "description": "<p>Demo &quot;start over&quot; — recreate a fresh brief server-side and return the new view.</p>\n",
                    "modifierKind": [
                        134
                    ]
                },
                {
                    "name": "save",
                    "args": [
                        {
                            "name": "sections",
                            "type": "unknown",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<Result<string, Brief>>",
                    "typeParameters": [],
                    "line": 45,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        134
                    ],
                    "jsdoctags": [
                        {
                            "name": "sections",
                            "type": "unknown",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "send",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<Result<string, Brief>>",
                    "typeParameters": [],
                    "line": 65,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        134
                    ]
                },
                {
                    "name": "submit",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<Result<string, Brief>>",
                    "typeParameters": [],
                    "line": 50,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        134
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Injectable, inject } from '@angular/core';\nimport { Result, ok, err } from '@shared/kernel/fp';\nimport { runSubmit } from '@shared/application/submit';\nimport {\n  ApiClient,\n  BriefDto,\n  BriefStatusDto,\n  BriefViewDto,\n  LetterBlockDto,\n  LetterSectionDto,\n  LibraryPassageDto,\n  PlaceholderDefDto,\n  RichTextBlockDto,\n  RichTextNodeDto,\n} from '@shared/infrastructure/api-client';\nimport { Brief, BriefStatus, LetterBlock, LetterSection, LibraryPassage, PassageScope } from '@brief/domain/brief';\nimport { PlaceholderDef } from '@brief/domain/placeholders';\nimport { Mark, Paragraph, RichTextBlock, RichTextNode } from '@shared/kernel/rich-text';\n\n/**\n * The only place brief HTTP lives (ADR-0001 anti-corruption boundary). The wire\n * uses FLAT unions (a `type`/`tag` string + nullable fields, the repo convention);\n * the `parse*` boundary narrows them into the domain's proper discriminated unions\n * and rejects malformed shapes. Mutations go through `runSubmit` (ProblemDetails →\n * error string), then parse the returned brief.\n */\n\nexport interface BriefView {\n  readonly brief: Brief;\n  readonly availablePassages: LibraryPassage[];\n}\n\nexport const BRIEF_LOAD_FAILED = $localize`:@@brief.load.failed:De brief kon niet worden geladen.`;\nexport const BRIEF_ACTION_FAILED = $localize`:@@brief.action.failed:De actie is niet gelukt. Probeer het later opnieuw.`;\n\n@Injectable({ providedIn: 'root' })\nexport class BriefAdapter {\n  private client = inject(ApiClient);\n\n  async load(): Promise<Result<string, BriefView>> {\n    const r = await runSubmit(() => this.client.briefGET(), BRIEF_LOAD_FAILED);\n    return r.ok ? parseBriefView(r.value) : r;\n  }\n\n  async save(sections: readonly LetterSection[]): Promise<Result<string, Brief>> {\n    const r = await runSubmit(() => this.client.briefPUT({ sections: sections.map(sectionToDto) }), BRIEF_ACTION_FAILED);\n    return r.ok ? parseBrief(r.value) : r;\n  }\n\n  async submit(): Promise<Result<string, Brief>> {\n    const r = await runSubmit(() => this.client.briefSubmit(), BRIEF_ACTION_FAILED);\n    return r.ok ? parseBrief(r.value) : r;\n  }\n\n  async approve(): Promise<Result<string, Brief>> {\n    const r = await runSubmit(() => this.client.approve(), BRIEF_ACTION_FAILED);\n    return r.ok ? parseBrief(r.value) : r;\n  }\n\n  async reject(comments: string): Promise<Result<string, Brief>> {\n    const r = await runSubmit(() => this.client.reject({ comments }), BRIEF_ACTION_FAILED);\n    return r.ok ? parseBrief(r.value) : r;\n  }\n\n  async send(): Promise<Result<string, Brief>> {\n    const r = await runSubmit(() => this.client.send(), BRIEF_ACTION_FAILED);\n    return r.ok ? parseBrief(r.value) : r;\n  }\n\n  /** Demo \"start over\" — recreate a fresh brief server-side and return the new view. */\n  async reset(): Promise<Result<string, BriefView>> {\n    const r = await runSubmit(() => this.client.briefReset(), BRIEF_ACTION_FAILED);\n    return r.ok ? parseBriefView(r.value) : r;\n  }\n}\n\n// --- parse: wire (flat) → domain (discriminated unions), validating at the boundary ---\n\nconst MARKS: readonly string[] = ['bold', 'italic', 'underline'];\n\nexport function parseNode(dto: RichTextNodeDto): Result<string, RichTextNode> {\n  switch (dto.type) {\n    case 'text': {\n      if (typeof dto.text !== 'string') return err('node: text missing text');\n      const marks = dto.marks?.filter((m): m is Mark => MARKS.includes(m));\n      return ok(marks && marks.length ? { type: 'text', text: dto.text, marks } : { type: 'text', text: dto.text });\n    }\n    case 'placeholder':\n      return typeof dto.key === 'string' ? ok({ type: 'placeholder', key: dto.key }) : err('node: placeholder missing key');\n    case 'lineBreak':\n      return ok({ type: 'lineBreak' });\n    default:\n      return err(`node: unknown type ${dto.type}`);\n  }\n}\n\nexport function parseBlockContent(dto: RichTextBlockDto | undefined): Result<string, RichTextBlock> {\n  if (!dto || !Array.isArray(dto.paragraphs)) return err('content: paragraphs not an array');\n  const paragraphs: Paragraph[] = [];\n  for (const p of dto.paragraphs) {\n    const nodes: RichTextNode[] = [];\n    for (const n of p.nodes ?? []) {\n      const parsed = parseNode(n);\n      if (!parsed.ok) return parsed;\n      nodes.push(parsed.value);\n    }\n    const list = p.list === 'bullet' || p.list === 'number' ? p.list : undefined;\n    paragraphs.push(list ? { nodes, list } : { nodes });\n  }\n  return ok({ paragraphs });\n}\n\nfunction parseBlock(dto: LetterBlockDto): Result<string, LetterBlock> {\n  if (typeof dto.blockId !== 'string') return err('block: missing blockId');\n  const content = parseBlockContent(dto.content);\n  if (!content.ok) return content;\n  switch (dto.type) {\n    case 'passage':\n      if (typeof dto.sourcePassageId !== 'string' || typeof dto.sourceVersion !== 'number') return err('block: bad passage provenance');\n      return ok({\n        type: 'passage',\n        blockId: dto.blockId,\n        sourcePassageId: dto.sourcePassageId,\n        sourceVersion: dto.sourceVersion,\n        content: content.value,\n        edited: dto.edited ?? false,\n      });\n    case 'freeText':\n      return ok({ type: 'freeText', blockId: dto.blockId, content: content.value });\n    default:\n      return err(`block: unknown type ${dto.type}`);\n  }\n}\n\nfunction parseSection(dto: LetterSectionDto): Result<string, LetterSection> {\n  if (typeof dto.sectionKey !== 'string' || typeof dto.title !== 'string' || typeof dto.required !== 'boolean') {\n    return err('section: bad shape');\n  }\n  const blocks: LetterBlock[] = [];\n  for (const b of dto.blocks ?? []) {\n    const parsed = parseBlock(b);\n    if (!parsed.ok) return parsed;\n    blocks.push(parsed.value);\n  }\n  return ok({ sectionKey: dto.sectionKey, title: dto.title, required: dto.required, locked: dto.locked ?? false, blocks });\n}\n\nfunction parsePlaceholderDef(dto: PlaceholderDefDto): Result<string, PlaceholderDef> {\n  if (typeof dto.key !== 'string' || typeof dto.label !== 'string' || typeof dto.autoResolvable !== 'boolean') {\n    return err('placeholder: bad shape');\n  }\n  return ok({\n    key: dto.key,\n    label: dto.label,\n    autoResolvable: dto.autoResolvable,\n    ...(dto.fillable != null ? { fillable: dto.fillable } : {}),\n    ...(dto.deprecated != null ? { deprecated: dto.deprecated } : {}),\n  });\n}\n\nexport function parseStatus(dto: BriefStatusDto | undefined): Result<string, BriefStatus> {\n  switch (dto?.tag) {\n    case 'draft':\n      return ok({ tag: 'draft' });\n    case 'submitted':\n      if (typeof dto.submittedBy !== 'string' || typeof dto.submittedAt !== 'string') return err('status: bad submitted');\n      return ok({ tag: 'submitted', submittedBy: dto.submittedBy, submittedAt: dto.submittedAt });\n    case 'approved':\n      if (typeof dto.approvedBy !== 'string' || typeof dto.approvedAt !== 'string') return err('status: bad approved');\n      return ok({ tag: 'approved', approvedBy: dto.approvedBy, approvedAt: dto.approvedAt });\n    case 'rejected':\n      if (typeof dto.rejectedBy !== 'string' || typeof dto.rejectedAt !== 'string' || typeof dto.comments !== 'string') return err('status: bad rejected');\n      return ok({ tag: 'rejected', rejectedBy: dto.rejectedBy, rejectedAt: dto.rejectedAt, comments: dto.comments });\n    case 'sent':\n      if (typeof dto.sentAt !== 'string') return err('status: bad sent');\n      return ok({ tag: 'sent', sentAt: dto.sentAt });\n    default:\n      return err(`status: unknown tag ${dto?.tag}`);\n  }\n}\n\nfunction parsePassage(dto: LibraryPassageDto): Result<string, LibraryPassage> {\n  if (typeof dto.passageId !== 'string' || (dto.scope !== 'global' && dto.scope !== 'beroep')) return err('passage: bad shape');\n  if (typeof dto.sectionKey !== 'string' || typeof dto.label !== 'string' || typeof dto.version !== 'number') return err('passage: bad shape');\n  const content = parseBlockContent(dto.content);\n  if (!content.ok) return content;\n  return ok({\n    passageId: dto.passageId,\n    scope: dto.scope as PassageScope,\n    sectionKey: dto.sectionKey,\n    label: dto.label,\n    content: content.value,\n    version: dto.version,\n    ...(dto.beroep != null ? { beroep: dto.beroep } : {}),\n  });\n}\n\nexport function parseBrief(dto: BriefDto): Result<string, Brief> {\n  if (typeof dto.briefId !== 'string' || typeof dto.drafterId !== 'string' || typeof dto.beroep !== 'string' || typeof dto.templateId !== 'string') {\n    return err('brief: missing ids');\n  }\n  const status = parseStatus(dto.status);\n  if (!status.ok) return status;\n\n  const placeholders: PlaceholderDef[] = [];\n  for (const p of dto.placeholders ?? []) {\n    const parsed = parsePlaceholderDef(p);\n    if (!parsed.ok) return parsed;\n    placeholders.push(parsed.value);\n  }\n  const sections: LetterSection[] = [];\n  for (const s of dto.sections ?? []) {\n    const parsed = parseSection(s);\n    if (!parsed.ok) return parsed;\n    sections.push(parsed.value);\n  }\n  return ok({\n    briefId: dto.briefId,\n    beroep: dto.beroep,\n    templateId: dto.templateId,\n    placeholders,\n    sections,\n    status: status.value,\n    drafterId: dto.drafterId,\n  });\n}\n\nexport function parseBriefView(dto: BriefViewDto): Result<string, BriefView> {\n  if (!dto.brief) return err('brief-view: missing brief');\n  const brief = parseBrief(dto.brief);\n  if (!brief.ok) return brief;\n  const availablePassages: LibraryPassage[] = [];\n  for (const p of dto.availablePassages ?? []) {\n    const parsed = parsePassage(p);\n    if (!parsed.ok) return parsed;\n    availablePassages.push(parsed.value);\n  }\n  return ok({ brief: brief.value, availablePassages });\n}\n\n// --- toDto: domain → wire, for save (collapses the union to the flat shape) ---\n\nfunction nodeToDto(n: RichTextNode): RichTextNodeDto {\n  switch (n.type) {\n    case 'text':\n      return { type: 'text', text: n.text, ...(n.marks ? { marks: [...n.marks] } : {}) };\n    case 'placeholder':\n      return { type: 'placeholder', key: n.key };\n    case 'lineBreak':\n      return { type: 'lineBreak' };\n  }\n}\n\nfunction contentToDto(content: RichTextBlock): RichTextBlockDto {\n  return { paragraphs: content.paragraphs.map((p) => ({ nodes: p.nodes.map(nodeToDto), ...(p.list ? { list: p.list } : {}) })) };\n}\n\nfunction blockToDto(b: LetterBlock): LetterBlockDto {\n  return b.type === 'passage'\n    ? { type: 'passage', blockId: b.blockId, content: contentToDto(b.content), sourcePassageId: b.sourcePassageId, sourceVersion: b.sourceVersion, edited: b.edited }\n    : { type: 'freeText', blockId: b.blockId, content: contentToDto(b.content) };\n}\n\nfunction sectionToDto(s: LetterSection): LetterSectionDto {\n  return { sectionKey: s.sectionKey, title: s.title, required: s.required, locked: s.locked, blocks: s.blocks.map(blockToDto) };\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "BriefStore",
            "id": "injectable-BriefStore-64471bf32d35f4e72408e188a2e67790945b41f71863fe2b974a960ea92cf922c96fa00b3129099db77c62406b2efdb9556fd13878fe02e50eff5559b0789a96",
            "file": "src/app/brief/application/brief.store.ts",
            "properties": [
                {
                    "name": "adapter",
                    "defaultValue": "inject(BriefAdapter)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 18,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "approve",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 92
                },
                {
                    "name": "brief",
                    "defaultValue": "computed<Brief | null>(() => {\n    const s = this.model();\n    return s.tag === 'loaded' ? s.brief : null;\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 28,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "busy",
                    "defaultValue": "signal(false)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 23,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "canSubmit",
                    "defaultValue": "computed(() => {\n    const b = this.brief();\n    return !!b && canSubmit(b) && !hasBlockingErrors(this.diagnostics());\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Submit is allowed only when required sections are filled AND no blocking errors.</p>\n",
                    "line": 42,
                    "rawdescription": "\nSubmit is allowed only when required sections are filled AND no blocking errors.",
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "diagnostics",
                    "defaultValue": "computed(() => (this.brief() ? allDiagnostics(this.brief()!) : []))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 39,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "editable",
                    "defaultValue": "computed(() => {\n    const b = this.brief();\n    return !!b && (b.status.tag === 'draft' || b.status.tag === 'rejected') && this.role === 'drafter';\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The single source of truth for edit permission: drafter, and a status the reducer\ntreats as editable (draft, or rejected — which reopens to draft on the first edit).</p>\n",
                    "line": 35,
                    "rawdescription": "\nThe single source of truth for edit permission: drafter, and a status the reducer\ntreats as editable (draft, or rejected — which reopens to draft on the first edit).",
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "lastError",
                    "defaultValue": "signal<string | null>(null)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 24,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "model",
                    "defaultValue": "this.store.model",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 21,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "reject",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 93
                },
                {
                    "name": "role",
                    "defaultValue": "currentRole()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Role",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "saveState",
                    "defaultValue": "signal<'idle' | 'saving' | 'saved' | 'error'>('idle')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Surfaced autosave state for the indicator + aria-live region.</p>\n",
                    "line": 26,
                    "rawdescription": "\nSurfaced autosave state for the indicator + aria-live region.",
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "saveTimer",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ReturnType<unknown>",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 59,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "send",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 94
                },
                {
                    "name": "store",
                    "defaultValue": "createStore<BriefState, BriefMsg>(initial, reduce)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 19,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "submit",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 91
                },
                {
                    "name": "unresolved",
                    "defaultValue": "computed(() => (this.brief() ? unresolvedPlaceholders(this.brief()!) : []))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 40,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "methods": [
                {
                    "name": "applyServerStatus",
                    "args": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 112,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "edit",
                    "args": [
                        {
                            "name": "msg",
                            "type": "BriefMsg",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 54,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nAn edit: apply it optimistically in the pure reducer, then debounce-save.",
                    "description": "<p>An edit: apply it optimistically in the pure reducer, then debounce-save.</p>\n",
                    "jsdoctags": [
                        {
                            "name": "msg",
                            "type": "BriefMsg",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "flushSave",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 66,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123,
                        134
                    ]
                },
                {
                    "name": "load",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 47,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        134
                    ]
                },
                {
                    "name": "resetDemo",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 80,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nDemo \"start over\": recreate the brief server-side and load the fresh view.",
                    "description": "<p>Demo &quot;start over&quot;: recreate the brief server-side and load the fresh view.</p>\n",
                    "modifierKind": [
                        134
                    ]
                },
                {
                    "name": "scheduleSave",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 60,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "transition",
                    "args": [
                        {
                            "name": "action",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": []
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 98,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123,
                        134
                    ],
                    "jsdoctags": [
                        {
                            "name": "action",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>Root singleton for the letter: the Elm store (Model + dispatch), the derived\nread-model, and the commands (effects) that call the adapter and dispatch the\noutcome. Mirrors <code>BigProfileStore</code>. All of <code>editable</code>, <code>diagnostics</code>,\n<code>unresolved</code>, <code>canSubmit</code> are DERIVED here — never stored.</p>\n",
            "rawdescription": "\n\nRoot singleton for the letter: the Elm store (Model + dispatch), the derived\nread-model, and the commands (effects) that call the adapter and dispatch the\noutcome. Mirrors `BigProfileStore`. All of `editable`, `diagnostics`,\n`unresolved`, `canSubmit` are DERIVED here — never stored.\n",
            "sourceCode": "import { Injectable, computed, inject, signal } from '@angular/core';\nimport { Result } from '@shared/kernel/fp';\nimport { createStore } from '@shared/application/store';\nimport { Role } from '@shared/domain/role';\nimport { currentRole } from '@shared/infrastructure/role';\nimport { Brief, allDiagnostics, canSubmit, hasBlockingErrors, unresolvedPlaceholders } from '@brief/domain/brief';\nimport { BriefMsg, BriefState, initial, reduce } from '@brief/domain/brief.machine';\nimport { BriefAdapter } from '@brief/infrastructure/brief.adapter';\n\n/**\n * Root singleton for the letter: the Elm store (Model + dispatch), the derived\n * read-model, and the commands (effects) that call the adapter and dispatch the\n * outcome. Mirrors `BigProfileStore`. All of `editable`, `diagnostics`,\n * `unresolved`, `canSubmit` are DERIVED here — never stored.\n */\n@Injectable({ providedIn: 'root' })\nexport class BriefStore {\n  private adapter = inject(BriefAdapter);\n  private store = createStore<BriefState, BriefMsg>(initial, reduce);\n\n  readonly model = this.store.model;\n  readonly role: Role = currentRole();\n  readonly busy = signal(false);\n  readonly lastError = signal<string | null>(null);\n  /** Surfaced autosave state for the indicator + aria-live region. */\n  readonly saveState = signal<'idle' | 'saving' | 'saved' | 'error'>('idle');\n\n  private brief = computed<Brief | null>(() => {\n    const s = this.model();\n    return s.tag === 'loaded' ? s.brief : null;\n  });\n\n  /** The single source of truth for edit permission: drafter, and a status the reducer\n      treats as editable (draft, or rejected — which reopens to draft on the first edit). */\n  readonly editable = computed(() => {\n    const b = this.brief();\n    return !!b && (b.status.tag === 'draft' || b.status.tag === 'rejected') && this.role === 'drafter';\n  });\n  readonly diagnostics = computed(() => (this.brief() ? allDiagnostics(this.brief()!) : []));\n  readonly unresolved = computed(() => (this.brief() ? unresolvedPlaceholders(this.brief()!) : []));\n  /** Submit is allowed only when required sections are filled AND no blocking errors. */\n  readonly canSubmit = computed(() => {\n    const b = this.brief();\n    return !!b && canSubmit(b) && !hasBlockingErrors(this.diagnostics());\n  });\n\n  async load() {\n    const r = await this.adapter.load();\n    if (r.ok) this.store.dispatch({ tag: 'BriefLoaded', brief: r.value.brief, availablePassages: r.value.availablePassages });\n    else this.store.dispatch({ tag: 'BriefLoadFailed', reason: r.error });\n  }\n\n  /** An edit: apply it optimistically in the pure reducer, then debounce-save. */\n  edit(msg: BriefMsg) {\n    this.store.dispatch(msg);\n    this.scheduleSave();\n  }\n\n  private saveTimer?: ReturnType<typeof setTimeout>;\n  private scheduleSave() {\n    if (!this.editable()) return;\n    clearTimeout(this.saveTimer);\n    // ponytail: 600ms debounce like the wizard draft-sync; the server is the store of record.\n    this.saveTimer = setTimeout(() => void this.flushSave(), 600);\n  }\n  private async flushSave() {\n    const b = this.brief();\n    if (!b) return;\n    this.saveState.set('saving');\n    const r = await this.adapter.save(b.sections);\n    if (r.ok) {\n      this.saveState.set('saved');\n    } else {\n      this.lastError.set(r.error);\n      this.saveState.set('error');\n    }\n  }\n\n  /** Demo \"start over\": recreate the brief server-side and load the fresh view. */\n  async resetDemo() {\n    this.busy.set(true);\n    this.lastError.set(null);\n    clearTimeout(this.saveTimer);\n    const r = await this.adapter.reset();\n    this.busy.set(false);\n    this.saveState.set('idle');\n    if (r.ok) this.store.dispatch({ tag: 'BriefLoaded', brief: r.value.brief, availablePassages: r.value.availablePassages });\n    else this.lastError.set(r.error);\n  }\n\n  submit = () => this.transition(() => this.adapter.submit());\n  approve = () => this.transition(() => this.adapter.approve());\n  reject = (comments: string) => this.transition(() => this.adapter.reject(comments));\n  send = () => this.transition(() => this.adapter.send());\n\n  // A transition: flush any pending save, call the server (authoritative), then mirror\n  // the returned status through the pure reducer's guarded transition.\n  private async transition(action: () => Promise<Result<string, Brief>>) {\n    this.busy.set(true);\n    this.lastError.set(null);\n    clearTimeout(this.saveTimer);\n    await this.flushSave();\n    const r = await action();\n    this.busy.set(false);\n    if (!r.ok) {\n      this.lastError.set(r.error);\n      return;\n    }\n    this.applyServerStatus(r.value);\n  }\n\n  private applyServerStatus(brief: Brief) {\n    const s = brief.status;\n    switch (s.tag) {\n      case 'submitted':\n        this.store.dispatch({ tag: 'Submitted', by: s.submittedBy, at: s.submittedAt });\n        break;\n      case 'approved':\n        this.store.dispatch({ tag: 'Approved', by: s.approvedBy, at: s.approvedAt });\n        break;\n      case 'rejected':\n        this.store.dispatch({ tag: 'Rejected', by: s.rejectedBy, at: s.rejectedAt, comments: s.comments });\n        break;\n      case 'sent':\n        this.store.dispatch({ tag: 'Sent', at: s.sentAt });\n        break;\n      case 'draft':\n        // reopened by a save on a rejected letter — reducer already handled it locally.\n        break;\n    }\n  }\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "BrpAdapter",
            "id": "injectable-BrpAdapter-10d450d8edce038e9b8dbda5c24d2ed28c074fb1ba249426d783365cd8811ed52349efba6e7d50aaefda59b247af7bf65f6ee70ccc6f10d31b014e453c8c284a",
            "file": "src/app/registratie/infrastructure/brp.adapter.ts",
            "properties": [
                {
                    "name": "client",
                    "defaultValue": "inject(ApiClient)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 13,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methods": [
                {
                    "name": "adresResource",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 16,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>Infrastructure adapter for the BRP address lookup, reached only through our own\n(&quot;BFF-lite&quot;) endpoint — the anti-corruption boundary. Data comes from the .NET\nbackend (<code>GET /api/brp/address</code>) via the generated typed client.</p>\n",
            "rawdescription": "\n\nInfrastructure adapter for the BRP address lookup, reached only through our own\n(\"BFF-lite\") endpoint — the anti-corruption boundary. Data comes from the .NET\nbackend (`GET /api/brp/address`) via the generated typed client.\n",
            "sourceCode": "import { Injectable, inject, resource } from '@angular/core';\nimport { Result, ok, err } from '@shared/kernel/fp';\nimport { BrpAddressDto } from '@registratie/contracts/brp-address.dto';\nimport { ApiClient } from '@shared/infrastructure/api-client';\n\n/**\n * Infrastructure adapter for the BRP address lookup, reached only through our own\n * (\"BFF-lite\") endpoint — the anti-corruption boundary. Data comes from the .NET\n * backend (`GET /api/brp/address`) via the generated typed client.\n */\n@Injectable({ providedIn: 'root' })\nexport class BrpAdapter {\n  private client = inject(ApiClient);\n\n  // The value is untrusted JSON until parseBrpAddress validates it.\n  adresResource() {\n    return resource({ loader: () => this.client.address() });\n  }\n}\n\n/** Trust-boundary parse: validate the untrusted response shape. \"Geen adres\" is a\n    valid outcome (gevonden: false), not a malformed response. ponytail: hand-written;\n    reach for a schema lib once the contract count grows. */\nexport function parseBrpAddress(json: unknown): Result<string, BrpAddressDto> {\n  if (typeof json !== 'object' || json === null) return err('brp-address: not an object');\n  const dto = json as Partial<BrpAddressDto>;\n  if (typeof dto.gevonden !== 'boolean') return err('brp-address: missing/invalid gevonden');\n  if (dto.gevonden) {\n    const a = dto.adres;\n    if (!a || typeof a.straat !== 'string' || typeof a.postcode !== 'string' || typeof a.woonplaats !== 'string') {\n      return err('brp-address: missing/invalid adres');\n    }\n  }\n  return ok({ gevonden: dto.gevonden, adres: dto.adres });\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "ChangeRequestAdapter",
            "id": "injectable-ChangeRequestAdapter-3d8898a68bcd237859453ab52edf528af737dcf38c01b739a658d29bdef7d85bb29f9b72d8c4f56fb34b88723404b63d4554497f77a26683869d9ec9f42b5922",
            "file": "src/app/registratie/infrastructure/change-request.adapter.ts",
            "properties": [
                {
                    "name": "client",
                    "defaultValue": "inject(ApiClient)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 13,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methods": [
                {
                    "name": "changeRequest",
                    "args": [
                        {
                            "name": "data",
                            "type": "Valid",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<string>",
                    "typeParameters": [],
                    "line": 15,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        134
                    ],
                    "jsdoctags": [
                        {
                            "name": "data",
                            "type": "Valid",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>Infrastructure adapter for the adreswijziging POST (<code>/api/v1/change-requests</code>) —\nthe single place the network client lives for change requests, so the command\nand the UI never touch <code>ApiClient</code>. Returns the server reference; the server\nre-validates and is the authority.</p>\n",
            "rawdescription": "\n\nInfrastructure adapter for the adreswijziging POST (`/api/v1/change-requests`) —\nthe single place the network client lives for change requests, so the command\nand the UI never touch `ApiClient`. Returns the server reference; the server\nre-validates and is the authority.\n",
            "sourceCode": "import { Injectable, inject } from '@angular/core';\nimport { ApiClient } from '@shared/infrastructure/api-client';\nimport { Valid } from '@registratie/domain/change-request.machine';\n\n/**\n * Infrastructure adapter for the adreswijziging POST (`/api/v1/change-requests`) —\n * the single place the network client lives for change requests, so the command\n * and the UI never touch `ApiClient`. Returns the server reference; the server\n * re-validates and is the authority.\n */\n@Injectable({ providedIn: 'root' })\nexport class ChangeRequestAdapter {\n  private client = inject(ApiClient);\n\n  async changeRequest(data: Valid): Promise<string> {\n    const res = await this.client.changeRequests({\n      straat: data.straat,\n      postcode: data.postcode,\n      woonplaats: data.woonplaats,\n    });\n    return res.referentie ?? '';\n  }\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "DashboardViewAdapter",
            "id": "injectable-DashboardViewAdapter-c58fb64e1122f4fd879cc04af00e47d5f21ebcd704c19b3ee6ff824dc42bc58cbaf30d615093402c466690d62d19c307b82fa5afbff32e4feeadf419e21ac189",
            "file": "src/app/registratie/infrastructure/dashboard-view.adapter.ts",
            "properties": [
                {
                    "name": "client",
                    "defaultValue": "inject(ApiClient)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 27,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methods": [
                {
                    "name": "dashboardViewResource",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 37,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>Infrastructure adapter for the screen-shaped (&quot;BFF-lite&quot;) dashboard endpoint.\nONE call returns registration + person + server-computed decisions. The data\ncomes from the .NET backend (<code>GET /api/dashboard-view</code>) via the generated typed\nclient; the decisions (e.g. herregistratie eligibility) are computed there.</p>\n",
            "rawdescription": "\n\nInfrastructure adapter for the screen-shaped (\"BFF-lite\") dashboard endpoint.\nONE call returns registration + person + server-computed decisions. The data\ncomes from the .NET backend (`GET /api/dashboard-view`) via the generated typed\nclient; the decisions (e.g. herregistratie eligibility) are computed there.\n",
            "sourceCode": "import { Injectable, inject, resource } from '@angular/core';\nimport { Result, ok, err } from '@shared/kernel/fp';\nimport { DashboardViewDto, HerregistratieDecisions } from '@registratie/contracts/dashboard-view.dto';\nimport { Registration } from '@registratie/domain/registration';\nimport { Person } from '@registratie/domain/person';\nimport { BigProfile } from '@registratie/domain/big-profile';\nimport { ApiClient } from '@shared/infrastructure/api-client';\n\n/**\n * The parsed, frontend-side view: the wire DTO mapped onto our own domain model.\n * Lives HERE, not in contracts/, because it references domain types — contracts\n * stays import-free. This split is the decoupling seam (CLAUDE.md §1, ADR-0001).\n */\nexport interface DashboardView {\n  profile: BigProfile;\n  decisions: HerregistratieDecisions;\n}\n\n/**\n * Infrastructure adapter for the screen-shaped (\"BFF-lite\") dashboard endpoint.\n * ONE call returns registration + person + server-computed decisions. The data\n * comes from the .NET backend (`GET /api/dashboard-view`) via the generated typed\n * client; the decisions (e.g. herregistratie eligibility) are computed there.\n */\n@Injectable({ providedIn: 'root' })\nexport class DashboardViewAdapter {\n  private client = inject(ApiClient);\n\n  // The value is still untrusted JSON — parseDashboardView validates it at the\n  // boundary and maps DTO → domain before the app uses it.\n  //\n  // SEAM (G5): retry-with-backoff for non-mutating reads wraps the loader here —\n  // e.g. `loader: () => withBackoff(() => this.client.dashboardView())` — since the\n  // adapter is the single place HTTP lives. Reads are safe to retry; MUTATING calls\n  // (the submit-* commands) must NEVER auto-retry — and don't. Manual retry\n  // (resource.reload via <app-async>) covers the UX today, so backoff stays unbuilt.\n  dashboardViewResource() {\n    return resource({ loader: () => this.client.dashboardView() });\n  }\n}\n\n/**\n * Trust-boundary parse: validate the untrusted response shape and map the DTO\n * onto our own domain model. Hand-written on purpose — no Zod for a single\n * contract. ponytail: reach for a schema lib once the contract count grows.\n */\nexport function parseDashboardView(json: unknown): Result<string, DashboardView> {\n  if (typeof json !== 'object' || json === null) return err('dashboard-view: not an object');\n  const dto = json as Partial<DashboardViewDto>;\n\n  const reg = dto.registration;\n  if (!reg || typeof reg.bigNummer !== 'string' || !reg.status || typeof reg.status.tag !== 'string') {\n    return err('dashboard-view: missing/invalid registration');\n  }\n  const person = dto.person;\n  if (!person || !person.adres || typeof person.adres.postcode !== 'string') {\n    return err('dashboard-view: missing/invalid person');\n  }\n  const d = dto.decisions;\n  if (!d || typeof d.eligibleForHerregistratie !== 'boolean') {\n    return err('dashboard-view: missing/invalid decisions');\n  }\n\n  // Map wire → domain. The shapes are identical today, so this reads as an\n  // identity copy — but the TYPES differ (wire DTO vs domain), so the moment the\n  // wire diverges the compiler forces a real mapping here. That's the seam.\n  const registration: Registration = {\n    bigNummer: reg.bigNummer,\n    naam: reg.naam,\n    beroep: reg.beroep,\n    registratiedatum: reg.registratiedatum,\n    geboortedatum: reg.geboortedatum,\n    status: reg.status,\n  };\n  const persoon: Person = { naam: person.naam, geboortedatum: person.geboortedatum, adres: person.adres };\n\n  return ok({\n    profile: { registration, person: persoon },\n    decisions: { eligibleForHerregistratie: d.eligibleForHerregistratie, herregistratieReason: d.herregistratieReason },\n  });\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "DigidAdapter",
            "id": "injectable-DigidAdapter-f046ea1531b0250c6367c33d4aad4e90b492ee19f28479d45f7142018c7f20bda7860e9c3695fa4d559223cf053bbfcf16b905073d3167633568d8e2120b212f",
            "file": "src/app/auth/infrastructure/digid.adapter.ts",
            "properties": [],
            "methods": [
                {
                    "name": "authenticate",
                    "args": [
                        {
                            "name": "bsn",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<Result<string, Session>>",
                    "typeParameters": [],
                    "line": 10,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        134
                    ],
                    "jsdoctags": [
                        {
                            "name": "bsn",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>Infrastructure: talks to the (mock) DigiD identity provider.</p>\n",
            "rawdescription": "\nInfrastructure: talks to the (mock) DigiD identity provider.",
            "sourceCode": "import { Injectable } from '@angular/core';\nimport { Result, ok, err } from '@shared/kernel/fp';\nimport { Session } from '../domain/session';\n\n/** Infrastructure: talks to the (mock) DigiD identity provider. */\n@Injectable({ providedIn: 'root' })\nexport class DigidAdapter {\n  // ponytail: fake DigiD — any 9-digit BSN authenticates to a fixed identity.\n  // Swap for a real OIDC redirect flow when there's a backend.\n  async authenticate(bsn: string): Promise<Result<string, Session>> {\n    const t = bsn.trim();\n    if (!/^\\d{9}$/.test(t)) return err($localize`:@@validation.bsn:Voer een geldig BSN van 9 cijfers in.`);\n    return ok({ bsn: t, naam: 'Dr. A. (Anna) de Vries' });\n  }\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "DuoAdapter",
            "id": "injectable-DuoAdapter-65cb84e352c9ce89498053dd35ac9a31e5e68642f2bab7f84a601a045c8c8403449d1eaea5d3c85169d793b7bd09f5cd0dee324540328bb73e16fd2649514fed",
            "file": "src/app/registratie/infrastructure/duo.adapter.ts",
            "properties": [
                {
                    "name": "client",
                    "defaultValue": "inject(ApiClient)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 15,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methods": [
                {
                    "name": "diplomasResource",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 17,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>Infrastructure adapter for the DUO diploma lookup, reached only through our own\n(&quot;BFF-lite&quot;) endpoint — the anti-corruption boundary. The response carries the\nuser&#39;s diplomas (each with its server-computed beroep + policy questions) and\nthe manual-entry fallback policy. The frontend renders; it does not derive.\nData comes from the .NET backend (<code>GET /api/duo/diplomas</code>) via the typed client.</p>\n",
            "rawdescription": "\n\nInfrastructure adapter for the DUO diploma lookup, reached only through our own\n(\"BFF-lite\") endpoint — the anti-corruption boundary. The response carries the\nuser's diplomas (each with its server-computed beroep + policy questions) and\nthe manual-entry fallback policy. The frontend renders; it does not derive.\nData comes from the .NET backend (`GET /api/duo/diplomas`) via the typed client.\n",
            "sourceCode": "import { Injectable, inject, resource } from '@angular/core';\nimport { Result, ok, err } from '@shared/kernel/fp';\nimport { DuoLookupDto, DuoDiplomaDto, PolicyQuestionDto, ManualDiplomaPolicyDto } from '@registratie/contracts/duo-diplomas.dto';\nimport { ApiClient } from '@shared/infrastructure/api-client';\n\n/**\n * Infrastructure adapter for the DUO diploma lookup, reached only through our own\n * (\"BFF-lite\") endpoint — the anti-corruption boundary. The response carries the\n * user's diplomas (each with its server-computed beroep + policy questions) and\n * the manual-entry fallback policy. The frontend renders; it does not derive.\n * Data comes from the .NET backend (`GET /api/duo/diplomas`) via the typed client.\n */\n@Injectable({ providedIn: 'root' })\nexport class DuoAdapter {\n  private client = inject(ApiClient);\n\n  diplomasResource() {\n    return resource({ loader: () => this.client.diplomas() });\n  }\n}\n\nfunction parseQuestions(json: unknown): PolicyQuestionDto[] | null {\n  if (!Array.isArray(json)) return null;\n  const out: PolicyQuestionDto[] = [];\n  for (const q of json) {\n    if (typeof q !== 'object' || q === null) return null;\n    const p = q as Partial<PolicyQuestionDto>;\n    if (typeof p.id !== 'string' || typeof p.vraag !== 'string' || (p.type !== 'ja-nee' && p.type !== 'tekst')) return null;\n    out.push({ id: p.id, vraag: p.vraag, type: p.type });\n  }\n  return out;\n}\n\n/** Trust-boundary parse: validate the untrusted response shape (diplomas, each\n    with derived beroep + policy questions, plus the manual-entry fallback). */\nexport function parseDuoLookup(json: unknown): Result<string, DuoLookupDto> {\n  if (typeof json !== 'object' || json === null) return err('duo-lookup: not an object');\n  const dto = json as Partial<DuoLookupDto>;\n  if (!Array.isArray(dto.diplomas)) return err('duo-lookup: missing diplomas');\n\n  const diplomas: DuoDiplomaDto[] = [];\n  for (const item of dto.diplomas) {\n    if (typeof item !== 'object' || item === null) return err('duo-lookup: invalid diploma');\n    const d = item as Partial<DuoDiplomaDto>;\n    const vragen = parseQuestions(d.policyQuestions);\n    if (typeof d.id !== 'string' || typeof d.naam !== 'string' || typeof d.beroep !== 'string' || vragen === null) {\n      return err('duo-lookup: missing/invalid diploma fields');\n    }\n    diplomas.push({ id: d.id, naam: d.naam, instelling: d.instelling ?? '', jaar: typeof d.jaar === 'number' ? d.jaar : 0, beroep: d.beroep, policyQuestions: vragen });\n  }\n\n  const hm = dto.handmatig;\n  const hmVragen = hm ? parseQuestions(hm.policyQuestions) : null;\n  if (!hm || !Array.isArray(hm.beroepen) || hmVragen === null) {\n    return err('duo-lookup: missing/invalid handmatig fallback');\n  }\n  const handmatig: ManualDiplomaPolicyDto = { beroepen: hm.beroepen, policyQuestions: hmVragen };\n\n  return ok({ diplomas, handmatig });\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "IntakePolicyAdapter",
            "id": "injectable-IntakePolicyAdapter-c48f30f2f16d4eeef7433634888e1d998bd653f31d0d43084eae3dd1b51257ebdff63f5aa7f3986b7978729fca6d1fc48dbd59d3821a8eb1f50a9e6ad0501783",
            "file": "src/app/herregistratie/infrastructure/intake-policy.adapter.ts",
            "properties": [
                {
                    "name": "client",
                    "defaultValue": "inject(ApiClient)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 11,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methods": [
                {
                    "name": "policyResource",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 13,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>Infrastructure adapter for the intake policy (the scholing threshold config\nvalue). Same shape as every other adapter — a signal <code>resource</code> over the\ngenerated typed client — so HTTP lives in exactly one place per concern.</p>\n",
            "rawdescription": "\n\nInfrastructure adapter for the intake policy (the scholing threshold config\nvalue). Same shape as every other adapter — a signal `resource` over the\ngenerated typed client — so HTTP lives in exactly one place per concern.\n",
            "sourceCode": "import { Injectable, inject, resource } from '@angular/core';\nimport { ApiClient } from '@shared/infrastructure/api-client';\n\n/**\n * Infrastructure adapter for the intake policy (the scholing threshold config\n * value). Same shape as every other adapter — a signal `resource` over the\n * generated typed client — so HTTP lives in exactly one place per concern.\n */\n@Injectable({ providedIn: 'root' })\nexport class IntakePolicyAdapter {\n  private client = inject(ApiClient);\n\n  policyResource() {\n    return resource({ loader: () => this.client.policy() });\n  }\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "IntakePolicyStore",
            "id": "injectable-IntakePolicyStore-49ee4b3edc4a018bdf8e9132222e4e4cbbadfeb337fe1e50c150950cc07dc65399c9d125334a543fa2db459802f99e8ece8731e9aac30c4feb1b3043f5185072",
            "file": "src/app/herregistratie/application/intake-policy.store.ts",
            "properties": [
                {
                    "name": "policy",
                    "defaultValue": "inject(IntakePolicyAdapter)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 15,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "policyRes",
                    "defaultValue": "this.policy.policyResource()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 16,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "scholingThreshold",
                    "defaultValue": "computed(() => this.policyRes.value()?.scholingThreshold ?? SCHOLING_THRESHOLD_DEFAULT)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 18,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "methods": [],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>Application-layer facade for the server-owned intake policy (the scholing\nthreshold config value). It owns the httpResource (created here, in the required\ninjection context) and exposes the threshold as a derived signal, falling back to\nthe domain default until the backend answers. The UI reaches the network through\napplication/, never infrastructure/ directly (CLAUDE.md §1). The backend stays the\nauthority and re-validates on submit.</p>\n",
            "rawdescription": "\n\nApplication-layer facade for the server-owned intake policy (the scholing\nthreshold config value). It owns the httpResource (created here, in the required\ninjection context) and exposes the threshold as a derived signal, falling back to\nthe domain default until the backend answers. The UI reaches the network through\napplication/, never infrastructure/ directly (CLAUDE.md §1). The backend stays the\nauthority and re-validates on submit.\n",
            "sourceCode": "import { Injectable, computed, inject } from '@angular/core';\nimport { SCHOLING_THRESHOLD_DEFAULT } from '../domain/intake.machine';\nimport { IntakePolicyAdapter } from '../infrastructure/intake-policy.adapter';\n\n/**\n * Application-layer facade for the server-owned intake policy (the scholing\n * threshold config value). It owns the httpResource (created here, in the required\n * injection context) and exposes the threshold as a derived signal, falling back to\n * the domain default until the backend answers. The UI reaches the network through\n * application/, never infrastructure/ directly (CLAUDE.md §1). The backend stays the\n * authority and re-validates on submit.\n */\n@Injectable({ providedIn: 'root' })\nexport class IntakePolicyStore {\n  private policy = inject(IntakePolicyAdapter);\n  private policyRes = this.policy.policyResource();\n\n  readonly scholingThreshold = computed(() => this.policyRes.value()?.scholingThreshold ?? SCHOLING_THRESHOLD_DEFAULT);\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "KeepaliveTransport",
            "id": "injectable-KeepaliveTransport-ec4f738d45fc556f5419cef06bad97f2f12a90de63211f79059088a2827ea9ee851b1544ec2110033a7797b65eaeb7caf0d4508fd122384394eaf9a145ffa7f6",
            "file": "src/app/shared/upload/upload-shell.service.ts",
            "properties": [
                {
                    "name": "adapter",
                    "defaultValue": "inject(UploadAdapter)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 19,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "backgroundSyncAvailable",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 20,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "methods": [
                {
                    "name": "send",
                    "args": [
                        {
                            "name": "req",
                            "type": "XhrUploadRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "onProgress",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "pct",
                                    "type": "number",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ]
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 21,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "req",
                            "type": "XhrUploadRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "onProgress",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "pct",
                                    "type": "number",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Injectable, inject } from '@angular/core';\nimport { UploadAdapter, XhrUploadRequest, XhrUploadHandle, UPLOAD_ABORTED } from './upload.adapter';\nimport { problemDetail } from '@shared/infrastructure/api-error';\nimport { UploadMsg, Upload } from './upload.machine';\n\n/**\n * Transport seam (PRD §6): how upload bytes leave the browser. The shipped impl is\n * KeepaliveTransport (XHR for progress; poll-on-return covers the background gap).\n * A ServiceWorkerTransport would set `backgroundSyncAvailable = true` and survive a\n * closed tab — swapping it in touches only this interface.\n */\nexport interface UploadTransport {\n  readonly backgroundSyncAvailable: boolean;\n  send(req: XhrUploadRequest, onProgress: (pct: number) => void): XhrUploadHandle;\n}\n\n@Injectable({ providedIn: 'root' })\nclass KeepaliveTransport implements UploadTransport {\n  private adapter = inject(UploadAdapter);\n  readonly backgroundSyncAvailable = false; // no Service Worker registered in this POC\n  send(req: XhrUploadRequest, onProgress: (pct: number) => void) {\n    return this.adapter.xhrUpload(req, onProgress);\n  }\n}\n\ntype Dispatch = (m: UploadMsg) => void;\n\n/**\n * Orchestrates upload effects: drives the transport and translates outcomes into\n * domain messages. Holds no UI state itself — the host wizard's reducer owns it.\n * Effects only; the reducer stays pure.\n */\n@Injectable({ providedIn: 'root' })\nexport class UploadShellService {\n  private transport: UploadTransport = inject(KeepaliveTransport);\n  private adapter = inject(UploadAdapter);\n  private inflight = new Map<string, () => void>(); // localId → cancel\n\n  get backgroundSyncAvailable(): boolean {\n    return this.transport.backgroundSyncAvailable;\n  }\n\n  /** Start (or retry) an upload: queue → progress → complete/failed. */\n  upload(req: XhrUploadRequest, dispatch: Dispatch): void {\n    dispatch({ type: 'UploadQueued', localId: req.localId, backgroundSync: this.backgroundSyncAvailable });\n    const { done, cancel } = this.transport.send(req, (pct) =>\n      dispatch({ type: 'UploadProgress', localId: req.localId, progressPct: pct }),\n    );\n    this.inflight.set(req.localId, cancel);\n    done\n      .then(({ documentId }) => dispatch({ type: 'UploadComplete', localId: req.localId, documentId }))\n      .catch((e) => {\n        if (e !== UPLOAD_ABORTED) {\n          dispatch({ type: 'UploadFailed', localId: req.localId, reason: typeof e === 'string' ? e : '' });\n        }\n      })\n      .finally(() => this.inflight.delete(req.localId));\n  }\n\n  /** Optimistic delete: mark deleting → complete (removed) / failed (reverted). */\n  delete(localId: string, documentId: string, dispatch: Dispatch): void {\n    dispatch({ type: 'UploadDeleting', localId });\n    this.adapter\n      .deleteDocument(documentId)\n      .then(() => dispatch({ type: 'UploadDeleteComplete', localId }))\n      .catch((e) => dispatch({ type: 'UploadDeleteFailed', localId, reason: problemDetail(e, '') }));\n  }\n\n  /** Cancel any in-flight XHRs (e.g. when a category switches to post-delivery). */\n  cancel(localIds: string[]): void {\n    for (const id of localIds) {\n      this.inflight.get(id)?.();\n      this.inflight.delete(id);\n    }\n  }\n\n  /** Poll-on-return: ask the BFF which still-in-flight uploads have arrived. */\n  async pollReturning(uploads: Upload[], dispatch: Dispatch): Promise<void> {\n    const ids = uploads.map((u) => u.localId);\n    if (ids.length === 0) return;\n    const items = await this.adapter.status(ids);\n    const results = items\n      .filter((i) => i.status === 'complete' && i.documentId)\n      .map((i) => ({ localId: i.localId, success: true as const, documentId: i.documentId! }));\n    if (results.length > 0) dispatch({ type: 'BackgroundUploadsReturned', results });\n  }\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "RegistratieLookupStore",
            "id": "injectable-RegistratieLookupStore-29413ada1a913b946a0b54cc99e8dd45cba66699dfd6743b58d37aab238ba2d1339b7466259603de71086624c449c634a50b0d0f5d98394bf7d53cc8c611b7eb",
            "file": "src/app/registratie/application/registratie-lookup.store.ts",
            "properties": [
                {
                    "name": "adresRes",
                    "defaultValue": "this.brp.adresResource()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "adresStatus",
                    "defaultValue": "computed<'laden' | 'gevonden' | 'geen' | 'fout'>(() => {\n    const st = this.adresRes.status();\n    if (st === 'loading' || st === 'reloading') return 'laden';\n    if (st === 'error') return 'fout';\n    const json = this.adresRes.value();\n    const parsed = json !== undefined ? parseBrpAddress(json) : null;\n    return parsed && parsed.ok && parsed.value.gevonden ? 'gevonden' : 'geen';\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>BRP lookup outcome. A failure or &quot;geen adres&quot; never blocks the wizard — both\nfall back to manual entry (PRD §7). &#39;geen&#39; covers both no-address-found and a\nmalformed response; &#39;fout&#39; is an unreachable BRP.</p>\n",
                    "line": 28,
                    "rawdescription": "\nBRP lookup outcome. A failure or \"geen adres\" never blocks the wizard — both\nfall back to manual entry (PRD §7). 'geen' covers both no-address-found and a\nmalformed response; 'fout' is an unreachable BRP.",
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "brp",
                    "defaultValue": "inject(BrpAdapter)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 19,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "diplomasRes",
                    "defaultValue": "this.duo.diplomasResource()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 23,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "duo",
                    "defaultValue": "inject(DuoAdapter)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 20,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "duoLookup",
                    "defaultValue": "computed<RemoteData<Err, DuoLookupDto>>(() => {\n    const rd = fromResource(this.diplomasRes);\n    if (rd.tag !== 'Success') return rd;\n    const parsed = parseDuoLookup(rd.value);\n    return parsed.ok ? { tag: 'Success', value: parsed.value } : { tag: 'Failure', error: new Error(parsed.error) };\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The DUO lookup (diplomas + manual fallback), validated at the trust boundary.</p>\n",
                    "line": 47,
                    "rawdescription": "\nThe DUO lookup (diplomas + manual fallback), validated at the trust boundary.",
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "prefillAdres",
                    "defaultValue": "computed<{ straat: string; postcode: string; woonplaats: string } | null>(() => {\n    const json = this.adresRes.value();\n    if (json === undefined) return null;\n    const parsed = parseBrpAddress(json);\n    return parsed.ok && parsed.value.gevonden && parsed.value.adres ? parsed.value.adres : null;\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The address to prefill the draft with, once BRP resolves with a found address;\nnull otherwise (loading, error, no address, malformed).</p>\n",
                    "line": 39,
                    "rawdescription": "\nThe address to prefill the draft with, once BRP resolves with a found address;\nnull otherwise (loading, error, no address, malformed).",
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "methods": [
                {
                    "name": "reloadAdres",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 55,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nReload the BRP lookup (e.g. when the wizard restarts) so the address re-prefills.",
                    "description": "<p>Reload the BRP lookup (e.g. when the wizard restarts) so the address re-prefills.</p>\n"
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>Application-layer facade for the registratie wizard&#39;s two lookups (BRP address,\nDUO diplomas). It owns the httpResources (created here, in the required injection\ncontext), runs the trust-boundary parse, and exposes RemoteData / derived signals\n— so the UI reaches the network through application/, never infrastructure/\ndirectly (CLAUDE.md §1: ui → application → domain). Same facade shape as\nBigProfileStore.</p>\n",
            "rawdescription": "\n\nApplication-layer facade for the registratie wizard's two lookups (BRP address,\nDUO diplomas). It owns the httpResources (created here, in the required injection\ncontext), runs the trust-boundary parse, and exposes RemoteData / derived signals\n— so the UI reaches the network through application/, never infrastructure/\ndirectly (CLAUDE.md §1: ui → application → domain). Same facade shape as\nBigProfileStore.\n",
            "sourceCode": "import { Injectable, computed, inject } from '@angular/core';\nimport { RemoteData, fromResource } from '@shared/application/remote-data';\nimport { DuoLookupDto } from '../contracts/duo-diplomas.dto';\nimport { BrpAdapter, parseBrpAddress } from '../infrastructure/brp.adapter';\nimport { DuoAdapter, parseDuoLookup } from '../infrastructure/duo.adapter';\n\ntype Err = Error | undefined;\n\n/**\n * Application-layer facade for the registratie wizard's two lookups (BRP address,\n * DUO diplomas). It owns the httpResources (created here, in the required injection\n * context), runs the trust-boundary parse, and exposes RemoteData / derived signals\n * — so the UI reaches the network through application/, never infrastructure/\n * directly (CLAUDE.md §1: ui → application → domain). Same facade shape as\n * BigProfileStore.\n */\n@Injectable({ providedIn: 'root' })\nexport class RegistratieLookupStore {\n  private brp = inject(BrpAdapter);\n  private duo = inject(DuoAdapter);\n\n  private adresRes = this.brp.adresResource();\n  private diplomasRes = this.duo.diplomasResource();\n\n  /** BRP lookup outcome. A failure or \"geen adres\" never blocks the wizard — both\n      fall back to manual entry (PRD §7). 'geen' covers both no-address-found and a\n      malformed response; 'fout' is an unreachable BRP. */\n  readonly adresStatus = computed<'laden' | 'gevonden' | 'geen' | 'fout'>(() => {\n    const st = this.adresRes.status();\n    if (st === 'loading' || st === 'reloading') return 'laden';\n    if (st === 'error') return 'fout';\n    const json = this.adresRes.value();\n    const parsed = json !== undefined ? parseBrpAddress(json) : null;\n    return parsed && parsed.ok && parsed.value.gevonden ? 'gevonden' : 'geen';\n  });\n\n  /** The address to prefill the draft with, once BRP resolves with a found address;\n      null otherwise (loading, error, no address, malformed). */\n  readonly prefillAdres = computed<{ straat: string; postcode: string; woonplaats: string } | null>(() => {\n    const json = this.adresRes.value();\n    if (json === undefined) return null;\n    const parsed = parseBrpAddress(json);\n    return parsed.ok && parsed.value.gevonden && parsed.value.adres ? parsed.value.adres : null;\n  });\n\n  /** The DUO lookup (diplomas + manual fallback), validated at the trust boundary. */\n  readonly duoLookup = computed<RemoteData<Err, DuoLookupDto>>(() => {\n    const rd = fromResource(this.diplomasRes);\n    if (rd.tag !== 'Success') return rd;\n    const parsed = parseDuoLookup(rd.value);\n    return parsed.ok ? { tag: 'Success', value: parsed.value } : { tag: 'Failure', error: new Error(parsed.error) };\n  });\n\n  /** Reload the BRP lookup (e.g. when the wizard restarts) so the address re-prefills. */\n  reloadAdres() {\n    this.adresRes.reload();\n  }\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "SessionStore",
            "id": "injectable-SessionStore-0baea49d81a56d8083840504ebe739dda3b087e42874387498a8367e5a497df3048237969f26e8d3dbe3f105be04f2eb80171579db11fc757f896c02bf386f49",
            "file": "src/app/auth/application/session.store.ts",
            "properties": [
                {
                    "name": "_session",
                    "defaultValue": "signal<Session | null>(restore())",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 35,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "digid",
                    "defaultValue": "inject(DigidAdapter)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 34,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "isAuthenticated",
                    "defaultValue": "computed(() => this._session() !== null)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 38,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "session",
                    "defaultValue": "this._session.asReadonly()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 37,
                    "modifierKind": [
                        148
                    ]
                }
            ],
            "methods": [
                {
                    "name": "login",
                    "args": [
                        {
                            "name": "bsn",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<Result<string, Session>>",
                    "typeParameters": [],
                    "line": 50,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nEffectful command: authenticate, then store the session on success.",
                    "description": "<p>Effectful command: authenticate, then store the session on success.</p>\n",
                    "modifierKind": [
                        134
                    ],
                    "jsdoctags": [
                        {
                            "name": "bsn",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "logout",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 56,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>Holds the current session for the whole app. Because it is providedIn:&#39;root&#39;\nthere is exactly one instance — every component that injects it sees the same\nsession signal, so logging in is instantly visible everywhere (the guard, the\nheader, etc.). The session is mirrored to sessionStorage so a refresh or a\ndeep-link to a protected route keeps you logged in; it clears when the tab\ncloses. ponytail: sessionStorage, not localStorage — no cross-tab sync, which\nmatches a single-session portal.</p>\n",
            "rawdescription": "\n\nHolds the current session for the whole app. Because it is providedIn:'root'\nthere is exactly one instance — every component that injects it sees the same\nsession signal, so logging in is instantly visible everywhere (the guard, the\nheader, etc.). The session is mirrored to sessionStorage so a refresh or a\ndeep-link to a protected route keeps you logged in; it clears when the tab\ncloses. ponytail: sessionStorage, not localStorage — no cross-tab sync, which\nmatches a single-session portal.\n",
            "sourceCode": "import { Injectable, computed, effect, inject, signal } from '@angular/core';\nimport { Result } from '@shared/kernel/fp';\nimport { Session } from '../domain/session';\nimport { DigidAdapter } from '../infrastructure/digid.adapter';\n\nconst STORAGE_KEY = 'session-v1';\n\n/** Restore a persisted session (best-effort; corrupt entry → logged out).\n    G2: validate the shape before trusting it. G1: the BSN is never persisted\n    (see the effect below), so a restored session carries an empty one — it is\n    unused after login; only `naam` is shown in the chrome. */\nfunction restore(): Session | null {\n  try {\n    const raw = sessionStorage.getItem(STORAGE_KEY);\n    if (!raw) return null;\n    const parsed = JSON.parse(raw) as Partial<Session>;\n    return typeof parsed?.naam === 'string' ? { bsn: '', naam: parsed.naam } : null;\n  } catch {\n    return null;\n  }\n}\n\n/**\n * Holds the current session for the whole app. Because it is providedIn:'root'\n * there is exactly one instance — every component that injects it sees the same\n * session signal, so logging in is instantly visible everywhere (the guard, the\n * header, etc.). The session is mirrored to sessionStorage so a refresh or a\n * deep-link to a protected route keeps you logged in; it clears when the tab\n * closes. ponytail: sessionStorage, not localStorage — no cross-tab sync, which\n * matches a single-session portal.\n */\n@Injectable({ providedIn: 'root' })\nexport class SessionStore {\n  private digid = inject(DigidAdapter);\n  private _session = signal<Session | null>(restore());\n\n  readonly session = this._session.asReadonly();\n  readonly isAuthenticated = computed(() => this._session() !== null);\n\n  constructor() {\n    effect(() => {\n      const s = this._session();\n      // G1: persist only `naam` — never write the BSN (national ID) to storage.\n      if (s) sessionStorage.setItem(STORAGE_KEY, JSON.stringify({ naam: s.naam }));\n      else sessionStorage.removeItem(STORAGE_KEY);\n    });\n  }\n\n  /** Effectful command: authenticate, then store the session on success. */\n  async login(bsn: string): Promise<Result<string, Session>> {\n    const r = await this.digid.authenticate(bsn);\n    if (r.ok) this._session.set(r.value);\n    return r;\n  }\n\n  logout() {\n    this._session.set(null);\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 38
            },
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "UploadAdapter",
            "id": "injectable-UploadAdapter-5fab28e6a8d389767caddf0e34edcd3013f54e6fdf3e82341e2ed7e9ef1035fa5a5338c98630c1de1e65329cdd6d40d726b1885c5c3ee4eff5a462ea3e81fcd7",
            "file": "src/app/shared/upload/upload.adapter.ts",
            "properties": [
                {
                    "name": "client",
                    "defaultValue": "inject(ApiClient)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 49,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methods": [
                {
                    "name": "categoriesResource",
                    "args": [
                        {
                            "name": "wizardId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "extra",
                            "type": "function",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": []
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 54,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nCategories are server-owned; some depend on answers (e.g. registratie's diploma\nset varies by DUO/handmatig + course language). `extra` makes the resource reactive\nso it re-fetches when those answers change.",
                    "description": "<p>Categories are server-owned; some depend on answers (e.g. registratie&#39;s diploma\nset varies by DUO/handmatig + course language). <code>extra</code> makes the resource reactive\nso it re-fetches when those answers change.</p>\n",
                    "jsdoctags": [
                        {
                            "name": "wizardId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "extra",
                            "type": "function",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "contentUrl",
                    "args": [
                        {
                            "name": "documentId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 85,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nDirect URL to the stored bytes, for a preview/download link (`<a href>`) — the\nserver serves it inline for pdf/image, attachment otherwise. Not a fetch: the\nbrowser opens it. demo-* ids (dev simulation) have no bytes and 404 here.\n",
                    "description": "<p>Direct URL to the stored bytes, for a preview/download link (<code>&lt;a href&gt;</code>) — the\nserver serves it inline for pdf/image, attachment otherwise. Not a fetch: the\nbrowser opens it. demo-* ids (dev simulation) have no bytes and 404 here.</p>\n",
                    "jsdoctags": [
                        {
                            "name": "documentId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "deleteDocument",
                    "args": [
                        {
                            "name": "documentId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 76,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nUser delete; throws a ProblemDetails (e.g. 409 once linked) the caller maps.",
                    "description": "<p>User delete; throws a ProblemDetails (e.g. 409 once linked) the caller maps.</p>\n",
                    "jsdoctags": [
                        {
                            "name": "documentId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "status",
                    "args": [
                        {
                            "name": "localIds",
                            "type": "string[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<StatusItem[]>",
                    "typeParameters": [],
                    "line": 70,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nPoll-on-return: which client localIds have arrived at the BFF.",
                    "description": "<p>Poll-on-return: which client localIds have arrived at the BFF.</p>\n",
                    "jsdoctags": [
                        {
                            "name": "localIds",
                            "type": "string[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "xhrUpload",
                    "args": [
                        {
                            "name": "req",
                            "type": "XhrUploadRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "onProgress",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "pct",
                                    "type": "number",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ]
                        }
                    ],
                    "optional": false,
                    "returnType": "XhrUploadHandle",
                    "typeParameters": [],
                    "line": 95,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nMultipart upload with progress + cancel. ponytail: XHR (not fetch keepalive) —\nprogress events need XHR; the keepalive/background gap is covered by\npoll-on-return (UploadShellService.pollReturning). Swap in a Service Worker\ntransport behind UploadTransport for true background sync.\n",
                    "description": "<p>Multipart upload with progress + cancel. ponytail: XHR (not fetch keepalive) —\nprogress events need XHR; the keepalive/background gap is covered by\npoll-on-return (UploadShellService.pollReturning). Swap in a Service Worker\ntransport behind UploadTransport for true background sync.</p>\n",
                    "jsdoctags": [
                        {
                            "name": "req",
                            "type": "XhrUploadRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "onProgress",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "pct",
                                    "type": "number",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>Infrastructure: the only place upload HTTP lives. Reads (categories, status,\ndelete) go through the NSwag client; the multipart POST is hand-written XHR\nbecause the generated client is JSON-only (the endpoint is ExcludeFromDescription)\nand we need upload-progress events + cancellation, which fetch can&#39;t give us.</p>\n",
            "rawdescription": "\n\nInfrastructure: the only place upload HTTP lives. Reads (categories, status,\ndelete) go through the NSwag client; the multipart POST is hand-written XHR\nbecause the generated client is JSON-only (the endpoint is ExcludeFromDescription)\nand we need upload-progress events + cancellation, which fetch can't give us.\n",
            "sourceCode": "import { Injectable, computed, inject, resource } from '@angular/core';\nimport {\n  ApiClient,\n  DocumentCategoryDto,\n  UploadStatusItemDto,\n} from '@shared/infrastructure/api-client';\nimport { problemDetail } from '@shared/infrastructure/api-error';\nimport { currentScenario } from '@shared/infrastructure/scenario';\nimport { environment } from '../../../environments/environment';\nimport { DocumentCategory } from './upload.machine';\n\n/** Answer-derived query params that affect which categories the server presents. */\nexport interface CategoryParams {\n  diplomaHerkomst?: string;\n  taalvaardigheid?: string;\n}\n\n/** One arrived/known status item from poll-on-return. */\nexport interface StatusItem {\n  localId: string;\n  status: string; // 'complete' | 'unknown'\n  documentId?: string;\n}\n\nexport interface XhrUploadRequest {\n  localId: string;\n  categoryId: string;\n  wizardId: string;\n  file: File;\n}\n\n/** A live upload: progress is reported via the callback; cancel aborts the XHR. */\nexport interface XhrUploadHandle {\n  done: Promise<{ documentId: string }>;\n  cancel: () => void;\n}\n\n/** Sentinel rejection so the caller can tell a user-cancel from a real failure. */\nexport const UPLOAD_ABORTED = Symbol('upload-aborted');\n\n/**\n * Infrastructure: the only place upload HTTP lives. Reads (categories, status,\n * delete) go through the NSwag client; the multipart POST is hand-written XHR\n * because the generated client is JSON-only (the endpoint is ExcludeFromDescription)\n * and we need upload-progress events + cancellation, which fetch can't give us.\n */\n@Injectable({ providedIn: 'root' })\nexport class UploadAdapter {\n  private client = inject(ApiClient);\n\n  /** Categories are server-owned; some depend on answers (e.g. registratie's diploma\n      set varies by DUO/handmatig + course language). `extra` makes the resource reactive\n      so it re-fetches when those answers change. */\n  categoriesResource(wizardId: string, extra?: () => CategoryParams) {\n    // Structural equality so we re-fetch only when a category-affecting answer changes,\n    // not on every unrelated draft edit (a computed with `equal` returns the cached\n    // reference while equal, so the resource sees no change).\n    const params = computed(\n      () => ({ wizardId, diplomaHerkomst: extra?.().diplomaHerkomst, taalvaardigheid: extra?.().taalvaardigheid }),\n      { equal: (a, b) => a.wizardId === b.wizardId && a.diplomaHerkomst === b.diplomaHerkomst && a.taalvaardigheid === b.taalvaardigheid },\n    );\n    return resource({\n      params,\n      loader: ({ params }) =>\n        this.client.categories(params.wizardId, params.diplomaHerkomst, params.taalvaardigheid).then((r) => (r.categories ?? []).map(toCategory)),\n    });\n  }\n\n  /** Poll-on-return: which client localIds have arrived at the BFF. */\n  status(localIds: string[]): Promise<StatusItem[]> {\n    if (localIds.length === 0) return Promise.resolve([]);\n    return this.client.status(localIds.join(',')).then((r) => (r.results ?? []).map(toStatusItem));\n  }\n\n  /** User delete; throws a ProblemDetails (e.g. 409 once linked) the caller maps. */\n  deleteDocument(documentId: string): Promise<void> {\n    return this.client.uploads(documentId);\n  }\n\n  /**\n   * Direct URL to the stored bytes, for a preview/download link (`<a href>`) — the\n   * server serves it inline for pdf/image, attachment otherwise. Not a fetch: the\n   * browser opens it. demo-* ids (dev simulation) have no bytes and 404 here.\n   */\n  contentUrl(documentId: string): string {\n    return `${environment.apiBaseUrl}/api/v1/uploads/${documentId}/content`;\n  }\n\n  /**\n   * Multipart upload with progress + cancel. ponytail: XHR (not fetch keepalive) —\n   * progress events need XHR; the keepalive/background gap is covered by\n   * poll-on-return (UploadShellService.pollReturning). Swap in a Service Worker\n   * transport behind UploadTransport for true background sync.\n   */\n  xhrUpload(req: XhrUploadRequest, onProgress: (pct: number) => void): XhrUploadHandle {\n    const scenario = currentScenario();\n    if (scenario === 'upload-slow' || scenario === 'upload-fail') return simulateUpload(scenario, onProgress);\n\n    const xhr = new XMLHttpRequest();\n    const form = new FormData();\n    form.append('file', req.file);\n    form.append('categoryId', req.categoryId);\n    form.append('localId', req.localId);\n    form.append('wizardId', req.wizardId);\n\n    let aborted = false;\n    const done = new Promise<{ documentId: string }>((resolve, reject) => {\n      xhr.upload.addEventListener('progress', (e) => {\n        if (e.lengthComputable) onProgress(Math.round((e.loaded / e.total) * 100));\n      });\n      xhr.addEventListener('load', () => {\n        if (xhr.status >= 200 && xhr.status < 300) {\n          try {\n            resolve({ documentId: JSON.parse(xhr.responseText).documentId });\n          } catch {\n            reject(genericError());\n          }\n        } else {\n          reject(parseError(xhr.responseText));\n        }\n      });\n      xhr.addEventListener('error', () => reject(genericError()));\n      xhr.addEventListener('abort', () => (aborted ? reject(UPLOAD_ABORTED) : reject(genericError())));\n    });\n\n    xhr.open('POST', `${environment.apiBaseUrl}/api/v1/uploads`);\n    xhr.send(form);\n    return { done, cancel: () => ((aborted = true), xhr.abort()) };\n  }\n}\n\nconst UPLOAD_FAILED = $localize`:@@upload.failed:Uploaden is niet gelukt. Probeer het opnieuw.`;\nconst genericError = (): string => UPLOAD_FAILED;\n\n/**\n * Demo-only (dev): the real XHR POST finishes instantly for metadata, so progress\n * and failure can't otherwise be shown. Drives the progress bar over ~2.5s, then\n * succeeds (`upload-slow`) or fails (`upload-fail`). ponytail: timer-based, cancel\n * via the returned handle; no network.\n */\nfunction simulateUpload(scenario: 'upload-slow' | 'upload-fail', onProgress: (pct: number) => void): XhrUploadHandle {\n  let pct = 0;\n  let cancelled = false;\n  const done = new Promise<{ documentId: string }>((resolve, reject) => {\n    const tick = () => {\n      if (cancelled) {\n        reject(UPLOAD_ABORTED);\n      } else if (pct < 100) {\n        pct += 10;\n        onProgress(Math.min(pct, 100));\n        setTimeout(tick, 250);\n      } else if (scenario === 'upload-fail') {\n        reject(UPLOAD_FAILED);\n      } else {\n        resolve({ documentId: `demo-${crypto.randomUUID()}` });\n      }\n    };\n    setTimeout(tick, 250);\n  });\n  return { done, cancel: () => void (cancelled = true) };\n}\nconst parseError = (body: string): string => {\n  try {\n    return problemDetail(JSON.parse(body), UPLOAD_FAILED);\n  } catch {\n    return genericError();\n  }\n};\n\n/** Wire DTO (all fields optional) → domain. */\nfunction toCategory(c: DocumentCategoryDto): DocumentCategory {\n  return {\n    categoryId: c.categoryId ?? '',\n    label: c.label ?? '',\n    description: c.description ?? '',\n    required: c.required ?? false,\n    acceptedTypes: c.acceptedTypes ?? [],\n    maxSizeMb: c.maxSizeMb ?? 0,\n    multiple: c.multiple ?? false,\n    allowPostDelivery: c.allowPostDelivery ?? false,\n  };\n}\n\nfunction toStatusItem(s: UploadStatusItemDto): StatusItem {\n  return { localId: s.localId ?? '', status: s.status ?? 'unknown', documentId: s.documentId ?? undefined };\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "UploadShellService",
            "id": "injectable-UploadShellService-ec4f738d45fc556f5419cef06bad97f2f12a90de63211f79059088a2827ea9ee851b1544ec2110033a7797b65eaeb7caf0d4508fd122384394eaf9a145ffa7f6",
            "file": "src/app/shared/upload/upload-shell.service.ts",
            "properties": [
                {
                    "name": "adapter",
                    "defaultValue": "inject(UploadAdapter)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 36,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "inflight",
                    "defaultValue": "new Map<string, () => void>()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 37,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "transport",
                    "defaultValue": "inject(KeepaliveTransport)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UploadTransport",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 35,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methods": [
                {
                    "name": "cancel",
                    "args": [
                        {
                            "name": "localIds",
                            "type": "string[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 70,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nCancel any in-flight XHRs (e.g. when a category switches to post-delivery).",
                    "description": "<p>Cancel any in-flight XHRs (e.g. when a category switches to post-delivery).</p>\n",
                    "jsdoctags": [
                        {
                            "name": "localIds",
                            "type": "string[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "delete",
                    "args": [
                        {
                            "name": "localId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "documentId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "dispatch",
                            "type": "Dispatch",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 61,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nOptimistic delete: mark deleting → complete (removed) / failed (reverted).",
                    "description": "<p>Optimistic delete: mark deleting → complete (removed) / failed (reverted).</p>\n",
                    "jsdoctags": [
                        {
                            "name": "localId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "documentId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "dispatch",
                            "type": "Dispatch",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "pollReturning",
                    "args": [
                        {
                            "name": "uploads",
                            "type": "Upload[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "dispatch",
                            "type": "Dispatch",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 78,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nPoll-on-return: ask the BFF which still-in-flight uploads have arrived.",
                    "description": "<p>Poll-on-return: ask the BFF which still-in-flight uploads have arrived.</p>\n",
                    "modifierKind": [
                        134
                    ],
                    "jsdoctags": [
                        {
                            "name": "uploads",
                            "type": "Upload[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "dispatch",
                            "type": "Dispatch",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "upload",
                    "args": [
                        {
                            "name": "req",
                            "type": "XhrUploadRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "dispatch",
                            "type": "Dispatch",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 44,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nStart (or retry) an upload: queue → progress → complete/failed.",
                    "description": "<p>Start (or retry) an upload: queue → progress → complete/failed.</p>\n",
                    "jsdoctags": [
                        {
                            "name": "req",
                            "type": "XhrUploadRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "dispatch",
                            "type": "Dispatch",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "<p>Orchestrates upload effects: drives the transport and translates outcomes into\ndomain messages. Holds no UI state itself — the host wizard&#39;s reducer owns it.\nEffects only; the reducer stays pure.</p>\n",
            "rawdescription": "\n\nOrchestrates upload effects: drives the transport and translates outcomes into\ndomain messages. Holds no UI state itself — the host wizard's reducer owns it.\nEffects only; the reducer stays pure.\n",
            "sourceCode": "import { Injectable, inject } from '@angular/core';\nimport { UploadAdapter, XhrUploadRequest, XhrUploadHandle, UPLOAD_ABORTED } from './upload.adapter';\nimport { problemDetail } from '@shared/infrastructure/api-error';\nimport { UploadMsg, Upload } from './upload.machine';\n\n/**\n * Transport seam (PRD §6): how upload bytes leave the browser. The shipped impl is\n * KeepaliveTransport (XHR for progress; poll-on-return covers the background gap).\n * A ServiceWorkerTransport would set `backgroundSyncAvailable = true` and survive a\n * closed tab — swapping it in touches only this interface.\n */\nexport interface UploadTransport {\n  readonly backgroundSyncAvailable: boolean;\n  send(req: XhrUploadRequest, onProgress: (pct: number) => void): XhrUploadHandle;\n}\n\n@Injectable({ providedIn: 'root' })\nclass KeepaliveTransport implements UploadTransport {\n  private adapter = inject(UploadAdapter);\n  readonly backgroundSyncAvailable = false; // no Service Worker registered in this POC\n  send(req: XhrUploadRequest, onProgress: (pct: number) => void) {\n    return this.adapter.xhrUpload(req, onProgress);\n  }\n}\n\ntype Dispatch = (m: UploadMsg) => void;\n\n/**\n * Orchestrates upload effects: drives the transport and translates outcomes into\n * domain messages. Holds no UI state itself — the host wizard's reducer owns it.\n * Effects only; the reducer stays pure.\n */\n@Injectable({ providedIn: 'root' })\nexport class UploadShellService {\n  private transport: UploadTransport = inject(KeepaliveTransport);\n  private adapter = inject(UploadAdapter);\n  private inflight = new Map<string, () => void>(); // localId → cancel\n\n  get backgroundSyncAvailable(): boolean {\n    return this.transport.backgroundSyncAvailable;\n  }\n\n  /** Start (or retry) an upload: queue → progress → complete/failed. */\n  upload(req: XhrUploadRequest, dispatch: Dispatch): void {\n    dispatch({ type: 'UploadQueued', localId: req.localId, backgroundSync: this.backgroundSyncAvailable });\n    const { done, cancel } = this.transport.send(req, (pct) =>\n      dispatch({ type: 'UploadProgress', localId: req.localId, progressPct: pct }),\n    );\n    this.inflight.set(req.localId, cancel);\n    done\n      .then(({ documentId }) => dispatch({ type: 'UploadComplete', localId: req.localId, documentId }))\n      .catch((e) => {\n        if (e !== UPLOAD_ABORTED) {\n          dispatch({ type: 'UploadFailed', localId: req.localId, reason: typeof e === 'string' ? e : '' });\n        }\n      })\n      .finally(() => this.inflight.delete(req.localId));\n  }\n\n  /** Optimistic delete: mark deleting → complete (removed) / failed (reverted). */\n  delete(localId: string, documentId: string, dispatch: Dispatch): void {\n    dispatch({ type: 'UploadDeleting', localId });\n    this.adapter\n      .deleteDocument(documentId)\n      .then(() => dispatch({ type: 'UploadDeleteComplete', localId }))\n      .catch((e) => dispatch({ type: 'UploadDeleteFailed', localId, reason: problemDetail(e, '') }));\n  }\n\n  /** Cancel any in-flight XHRs (e.g. when a category switches to post-delivery). */\n  cancel(localIds: string[]): void {\n    for (const id of localIds) {\n      this.inflight.get(id)?.();\n      this.inflight.delete(id);\n    }\n  }\n\n  /** Poll-on-return: ask the BFF which still-in-flight uploads have arrived. */\n  async pollReturning(uploads: Upload[], dispatch: Dispatch): Promise<void> {\n    const ids = uploads.map((u) => u.localId);\n    if (ids.length === 0) return;\n    const items = await this.adapter.status(ids);\n    const results = items\n      .filter((i) => i.status === 'complete' && i.documentId)\n      .map((i) => ({ localId: i.localId, success: true as const, documentId: i.documentId! }));\n    if (results.length > 0) dispatch({ type: 'BackgroundUploadsReturned', results });\n  }\n}\n",
            "accessors": {
                "backgroundSyncAvailable": {
                    "name": "backgroundSyncAvailable",
                    "getSignature": {
                        "name": "backgroundSyncAvailable",
                        "type": "boolean",
                        "returnType": "boolean",
                        "line": 39
                    }
                }
            },
            "extends": [],
            "type": "injectable"
        }
    ],
    "guards": [],
    "interceptors": [],
    "classes": [
        {
            "name": "ApiClient",
            "id": "class-ApiClient-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "baseUrl",
                        "type": "string",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "http",
                        "type": "literal type",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 13,
                "jsdoctags": [
                    {
                        "name": "baseUrl",
                        "type": "string",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "http",
                        "type": "literal type",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [
                {
                    "name": "baseUrl",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 12,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "http",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "literal type",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 11,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "jsonParseReviver",
                    "defaultValue": "undefined",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown | undefined",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 13,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methods": [
                {
                    "name": "address",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<BrpAddressDto>",
                    "typeParameters": [],
                    "line": 161,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 5698,
                                "end": 5704,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "applicationsAll",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<ApplicationSummaryDto[]>",
                    "typeParameters": [],
                    "line": 674,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 26846,
                                "end": 26852,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "applicationsDELETE",
                    "args": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 837,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "tagName": {
                                "pos": 33371,
                                "end": 33377,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>No Content</p>\n"
                        }
                    ]
                },
                {
                    "name": "applicationsGET",
                    "args": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<ApplicationDetailDto>",
                    "typeParameters": [],
                    "line": 750,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "tagName": {
                                "pos": 29853,
                                "end": 29859,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "applicationsPOST",
                    "args": [
                        {
                            "name": "body",
                            "type": "CreateApplicationRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<ApplicationDetailDto>",
                    "typeParameters": [],
                    "line": 710,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": "body",
                            "type": "CreateApplicationRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "tagName": {
                                "pos": 28272,
                                "end": 28278,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>Created</p>\n"
                        }
                    ]
                },
                {
                    "name": "applicationsPUT",
                    "args": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "body",
                            "type": "DraftSyncRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 793,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "body",
                            "type": "DraftSyncRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "tagName": {
                                "pos": 31667,
                                "end": 31673,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>No Content</p>\n"
                        }
                    ]
                },
                {
                    "name": "approve",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<BriefDto>",
                    "typeParameters": [],
                    "line": 1072,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 43305,
                                "end": 43311,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "briefGET",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<BriefViewDto>",
                    "typeParameters": [],
                    "line": 936,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 37642,
                                "end": 37648,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "briefPUT",
                    "args": [
                        {
                            "name": "body",
                            "type": "SaveBriefRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<BriefDto>",
                    "typeParameters": [],
                    "line": 972,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": "body",
                            "type": "SaveBriefRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "tagName": {
                                "pos": 38996,
                                "end": 39002,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "briefReset",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<BriefViewDto>",
                    "typeParameters": [],
                    "line": 1214,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 49305,
                                "end": 49311,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "briefSubmit",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<BriefDto>",
                    "typeParameters": [],
                    "line": 1024,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 41217,
                                "end": 41223,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "categories",
                    "args": [
                        {
                            "name": "wizardId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "diplomaHerkomst",
                            "type": "string | undefined",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "taalvaardigheid",
                            "type": "string | undefined",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<UploadCategoriesDto>",
                    "typeParameters": [],
                    "line": 455,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": "wizardId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": {
                                "pos": 17515,
                                "end": 17530,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "diplomaHerkomst"
                            },
                            "type": "string | undefined",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 17509,
                                "end": 17514,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>(optional)</p>\n"
                        },
                        {
                            "name": {
                                "pos": 17557,
                                "end": 17572,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "taalvaardigheid"
                            },
                            "type": "string | undefined",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 17551,
                                "end": 17556,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>(optional)</p>\n"
                        },
                        {
                            "tagName": {
                                "pos": 17593,
                                "end": 17599,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "changeRequests",
                    "args": [
                        {
                            "name": "body",
                            "type": "ChangeRequestRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<ReferentieResponse>",
                    "typeParameters": [],
                    "line": 407,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": "body",
                            "type": "ChangeRequestRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "tagName": {
                                "pos": 15569,
                                "end": 15575,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "content",
                    "args": [
                        {
                            "name": "documentId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 503,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": "documentId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "tagName": {
                                "pos": 19868,
                                "end": 19874,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "dashboardView",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<DashboardViewDto>",
                    "typeParameters": [],
                    "line": 89,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 2943,
                                "end": 2949,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "diplomas",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<DuoLookupDto>",
                    "typeParameters": [],
                    "line": 197,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 7059,
                                "end": 7065,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "health",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 23,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 732,
                                "end": 738,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "herregistraties",
                    "args": [
                        {
                            "name": "body",
                            "type": "HerregistratieRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<ReferentieResponse>",
                    "typeParameters": [],
                    "line": 315,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": "body",
                            "type": "HerregistratieRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "tagName": {
                                "pos": 11721,
                                "end": 11727,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "intakes",
                    "args": [
                        {
                            "name": "body",
                            "type": "IntakeRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<ReferentieResponse>",
                    "typeParameters": [],
                    "line": 361,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": "body",
                            "type": "IntakeRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "tagName": {
                                "pos": 13665,
                                "end": 13671,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "notes",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<AantekeningDto[]>",
                    "typeParameters": [],
                    "line": 125,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 4337,
                                "end": 4343,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "policy",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<IntakePolicyDto>",
                    "typeParameters": [],
                    "line": 233,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 8420,
                                "end": 8426,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "processAddress",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<BrpAddressDto>",
                    "typeParameters": [],
                    "line": 177,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processApplicationsAll",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<ApplicationSummaryDto[]>",
                    "typeParameters": [],
                    "line": 690,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processApplicationsDELETE",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 855,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processApplicationsGET",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<ApplicationDetailDto>",
                    "typeParameters": [],
                    "line": 769,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processApplicationsPOST",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<ApplicationDetailDto>",
                    "typeParameters": [],
                    "line": 730,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processApplicationsPUT",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 815,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processApprove",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<BriefDto>",
                    "typeParameters": [],
                    "line": 1088,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processBriefGET",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<BriefViewDto>",
                    "typeParameters": [],
                    "line": 952,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processBriefPUT",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<BriefDto>",
                    "typeParameters": [],
                    "line": 992,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processBriefReset",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<BriefViewDto>",
                    "typeParameters": [],
                    "line": 1230,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processBriefSubmit",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<BriefDto>",
                    "typeParameters": [],
                    "line": 1040,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processCategories",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<UploadCategoriesDto>",
                    "typeParameters": [],
                    "line": 483,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processChangeRequests",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<ReferentieResponse>",
                    "typeParameters": [],
                    "line": 427,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processContent",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 521,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processDashboardView",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<DashboardViewDto>",
                    "typeParameters": [],
                    "line": 105,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processDiplomas",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<DuoLookupDto>",
                    "typeParameters": [],
                    "line": 213,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processHealth",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 38,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processHerregistraties",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<ReferentieResponse>",
                    "typeParameters": [],
                    "line": 335,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processIntakes",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<ReferentieResponse>",
                    "typeParameters": [],
                    "line": 381,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processNotes",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<AantekeningDto[]>",
                    "typeParameters": [],
                    "line": 141,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processPolicy",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<IntakePolicyDto>",
                    "typeParameters": [],
                    "line": 249,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processReady",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 71,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processRegistrations",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<ReferentieResponse>",
                    "typeParameters": [],
                    "line": 289,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processReject",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<BriefDto>",
                    "typeParameters": [],
                    "line": 1140,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processSend",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<BriefDto>",
                    "typeParameters": [],
                    "line": 1188,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processStatus",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<UploadStatusDto>",
                    "typeParameters": [],
                    "line": 564,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processSubmit",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<SubmitApplicationResponse>",
                    "typeParameters": [],
                    "line": 906,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processUploads",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 602,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "processUploads2",
                    "args": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 648,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "response",
                            "type": "Response",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "ready",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 56,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 1836,
                                "end": 1842,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "registrations",
                    "args": [
                        {
                            "name": "body",
                            "type": "RegistratieRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<ReferentieResponse>",
                    "typeParameters": [],
                    "line": 269,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": "body",
                            "type": "RegistratieRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "tagName": {
                                "pos": 9788,
                                "end": 9794,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "reject",
                    "args": [
                        {
                            "name": "body",
                            "type": "RejectBriefRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<BriefDto>",
                    "typeParameters": [],
                    "line": 1120,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": "body",
                            "type": "RejectBriefRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "tagName": {
                                "pos": 45382,
                                "end": 45388,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "send",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<BriefDto>",
                    "typeParameters": [],
                    "line": 1172,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 47607,
                                "end": 47613,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "status",
                    "args": [
                        {
                            "name": "localIds",
                            "type": "string | undefined",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<UploadStatusDto>",
                    "typeParameters": [],
                    "line": 544,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 21453,
                                "end": 21461,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "localIds"
                            },
                            "type": "string | undefined",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 21447,
                                "end": 21452,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>(optional)</p>\n"
                        },
                        {
                            "tagName": {
                                "pos": 21482,
                                "end": 21488,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "submit",
                    "args": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "body",
                            "type": "SubmitApplicationRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<SubmitApplicationResponse>",
                    "typeParameters": [],
                    "line": 883,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "body",
                            "type": "SubmitApplicationRequest",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "tagName": {
                                "pos": 35301,
                                "end": 35307,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>OK</p>\n"
                        }
                    ]
                },
                {
                    "name": "uploads",
                    "args": [
                        {
                            "name": "documentId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 584,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": "documentId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "tagName": {
                                "pos": 23112,
                                "end": 23118,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>No Content</p>\n"
                        }
                    ]
                },
                {
                    "name": "uploads2",
                    "args": [
                        {
                            "name": "documentId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 630,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "jsdoctags": [
                        {
                            "name": "documentId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "tagName": {
                                "pos": 25060,
                                "end": 25066,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "return"
                            },
                            "comment": "<p>No Content</p>\n"
                        }
                    ]
                }
            ],
            "indexSignatures": [],
            "extends": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "SwaggerException",
            "id": "class-SwaggerException-134629d19fe3b5e6a76daeb4f10c282202eb1b8380b939c25450bb44b86fcb3df7a15e5ead886ad958b8bb7f158457387fb6c11872acdb4893c4933c2fdef07b",
            "file": "src/app/shared/infrastructure/api-client.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "export class ApiClient {\n    private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n    private baseUrl: string;\n    protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n    constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n        this.http = http ? http : window as any;\n        this.baseUrl = baseUrl ?? \"\";\n    }\n\n    /**\n     * @return OK\n     */\n    health(): Promise<void> {\n        let url_ = this.baseUrl + \"/health\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHealth(_response);\n        });\n    }\n\n    protected processHealth(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    ready(): Promise<void> {\n        let url_ = this.baseUrl + \"/health/ready\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReady(_response);\n        });\n    }\n\n    protected processReady(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    dashboardView(): Promise<DashboardViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/dashboard-view\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDashboardView(_response);\n        });\n    }\n\n    protected processDashboardView(response: Response): Promise<DashboardViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DashboardViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DashboardViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    notes(): Promise<AantekeningDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/notes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processNotes(_response);\n        });\n    }\n\n    protected processNotes(response: Response): Promise<AantekeningDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as AantekeningDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<AantekeningDto[]>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    address(): Promise<BrpAddressDto> {\n        let url_ = this.baseUrl + \"/api/v1/brp/address\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processAddress(_response);\n        });\n    }\n\n    protected processAddress(response: Response): Promise<BrpAddressDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BrpAddressDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BrpAddressDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    diplomas(): Promise<DuoLookupDto> {\n        let url_ = this.baseUrl + \"/api/v1/duo/diplomas\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processDiplomas(_response);\n        });\n    }\n\n    protected processDiplomas(response: Response): Promise<DuoLookupDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as DuoLookupDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<DuoLookupDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    policy(): Promise<IntakePolicyDto> {\n        let url_ = this.baseUrl + \"/api/v1/intake/policy\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processPolicy(_response);\n        });\n    }\n\n    protected processPolicy(response: Response): Promise<IntakePolicyDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as IntakePolicyDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<IntakePolicyDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    registrations(body: RegistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/registrations\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processRegistrations(_response);\n        });\n    }\n\n    protected processRegistrations(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    herregistraties(body: HerregistratieRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/herregistraties\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processHerregistraties(_response);\n        });\n    }\n\n    protected processHerregistraties(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    intakes(body: IntakeRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/intakes\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processIntakes(_response);\n        });\n    }\n\n    protected processIntakes(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    changeRequests(body: ChangeRequestRequest): Promise<ReferentieResponse> {\n        let url_ = this.baseUrl + \"/api/v1/change-requests\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processChangeRequests(_response);\n        });\n    }\n\n    protected processChangeRequests(response: Response): Promise<ReferentieResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ReferentieResponse;\n            return result200;\n            });\n        } else if (status === 422) {\n            return response.text().then((_responseText) => {\n            let result422: any = null;\n            result422 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Unprocessable Content\", status, _responseText, _headers, result422);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ReferentieResponse>(null as any);\n    }\n\n    /**\n     * @param diplomaHerkomst (optional) \n     * @param taalvaardigheid (optional) \n     * @return OK\n     */\n    categories(wizardId: string, diplomaHerkomst?: string | undefined, taalvaardigheid?: string | undefined): Promise<UploadCategoriesDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/categories?\";\n        if (wizardId === undefined || wizardId === null)\n            throw new globalThis.Error(\"The parameter 'wizardId' must be defined and cannot be null.\");\n        else\n            url_ += \"wizardId=\" + encodeURIComponent(\"\" + wizardId) + \"&\";\n        if (diplomaHerkomst === null)\n            throw new globalThis.Error(\"The parameter 'diplomaHerkomst' cannot be null.\");\n        else if (diplomaHerkomst !== undefined)\n            url_ += \"diplomaHerkomst=\" + encodeURIComponent(\"\" + diplomaHerkomst) + \"&\";\n        if (taalvaardigheid === null)\n            throw new globalThis.Error(\"The parameter 'taalvaardigheid' cannot be null.\");\n        else if (taalvaardigheid !== undefined)\n            url_ += \"taalvaardigheid=\" + encodeURIComponent(\"\" + taalvaardigheid) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processCategories(_response);\n        });\n    }\n\n    protected processCategories(response: Response): Promise<UploadCategoriesDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadCategoriesDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadCategoriesDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    content(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}/content\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processContent(_response);\n        });\n    }\n\n    protected processContent(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @param localIds (optional) \n     * @return OK\n     */\n    status(localIds?: string | undefined): Promise<UploadStatusDto> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/status?\";\n        if (localIds === null)\n            throw new globalThis.Error(\"The parameter 'localIds' cannot be null.\");\n        else if (localIds !== undefined)\n            url_ += \"localIds=\" + encodeURIComponent(\"\" + localIds) + \"&\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processStatus(_response);\n        });\n    }\n\n    protected processStatus(response: Response): Promise<UploadStatusDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UploadStatusDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<UploadStatusDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads(_response);\n        });\n    }\n\n    protected processUploads(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    uploads2(documentId: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/admin/uploads/{documentId}\";\n        if (documentId === undefined || documentId === null)\n            throw new globalThis.Error(\"The parameter 'documentId' must be defined.\");\n        url_ = url_.replace(\"{documentId}\", encodeURIComponent(\"\" + documentId));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processUploads2(_response);\n        });\n    }\n\n    protected processUploads2(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Forbidden\", status, _responseText, _headers);\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsAll(): Promise<ApplicationSummaryDto[]> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsAll(_response);\n        });\n    }\n\n    protected processApplicationsAll(response: Response): Promise<ApplicationSummaryDto[]> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationSummaryDto[];\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationSummaryDto[]>(null as any);\n    }\n\n    /**\n     * @return Created\n     */\n    applicationsPOST(body: CreateApplicationRequest): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPOST(_response);\n        });\n    }\n\n    protected processApplicationsPOST(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 201) {\n            return response.text().then((_responseText) => {\n            let result201: any = null;\n            result201 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result201;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    applicationsGET(id: string): Promise<ApplicationDetailDto> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsGET(_response);\n        });\n    }\n\n    protected processApplicationsGET(response: Response): Promise<ApplicationDetailDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApplicationDetailDto;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<ApplicationDetailDto>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsPUT(id: string, body: DraftSyncRequest): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsPUT(_response);\n        });\n    }\n\n    protected processApplicationsPUT(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return No Content\n     */\n    applicationsDELETE(id: string): Promise<void> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"DELETE\",\n            headers: {\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApplicationsDELETE(_response);\n        });\n    }\n\n    protected processApplicationsDELETE(response: Response): Promise<void> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 204) {\n            return response.text().then((_responseText) => {\n            return;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<void>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    submit(id: string, body: SubmitApplicationRequest): Promise<SubmitApplicationResponse> {\n        let url_ = this.baseUrl + \"/api/v1/applications/{id}/submit\";\n        if (id === undefined || id === null)\n            throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n        url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSubmit(_response);\n        });\n    }\n\n    protected processSubmit(response: Response): Promise<SubmitApplicationResponse> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as SubmitApplicationResponse;\n            return result200;\n            });\n        } else if (status === 404) {\n            return response.text().then((_responseText) => {\n            return throwException(\"Not Found\", status, _responseText, _headers);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<SubmitApplicationResponse>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefGET(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"GET\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefGET(_response);\n        });\n    }\n\n    protected processBriefGET(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefPUT(body: SaveBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"PUT\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefPUT(_response);\n        });\n    }\n\n    protected processBriefPUT(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefSubmit(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/submit\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefSubmit(_response);\n        });\n    }\n\n    protected processBriefSubmit(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    approve(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/approve\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processApprove(_response);\n        });\n    }\n\n    protected processApprove(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    reject(body: RejectBriefRequest): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reject\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        const content_ = JSON.stringify(body);\n\n        let options_: RequestInit = {\n            body: content_,\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processReject(_response);\n        });\n    }\n\n    protected processReject(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 403) {\n            return response.text().then((_responseText) => {\n            let result403: any = null;\n            result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Forbidden\", status, _responseText, _headers, result403);\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    send(): Promise<BriefDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/send\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processSend(_response);\n        });\n    }\n\n    protected processSend(response: Response): Promise<BriefDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefDto;\n            return result200;\n            });\n        } else if (status === 409) {\n            return response.text().then((_responseText) => {\n            let result409: any = null;\n            result409 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ProblemDetails;\n            return throwException(\"Conflict\", status, _responseText, _headers, result409);\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefDto>(null as any);\n    }\n\n    /**\n     * @return OK\n     */\n    briefReset(): Promise<BriefViewDto> {\n        let url_ = this.baseUrl + \"/api/v1/brief/reset\";\n        url_ = url_.replace(/[?&]$/, \"\");\n\n        let options_: RequestInit = {\n            method: \"POST\",\n            headers: {\n                \"Accept\": \"application/json\"\n            }\n        };\n\n        return this.http.fetch(url_, options_).then((_response: Response) => {\n            return this.processBriefReset(_response);\n        });\n    }\n\n    protected processBriefReset(response: Response): Promise<BriefViewDto> {\n        const status = response.status;\n        let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\n        if (status === 200) {\n            return response.text().then((_responseText) => {\n            let result200: any = null;\n            result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as BriefViewDto;\n            return result200;\n            });\n        } else if (status !== 200 && status !== 204) {\n            return response.text().then((_responseText) => {\n            return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n            });\n        }\n        return Promise.resolve<BriefViewDto>(null as any);\n    }\n}\n\nexport interface AantekeningDto {\n    type?: string | undefined;\n    omschrijving?: string | undefined;\n    datum?: string | undefined;\n}\n\nexport interface AanvraagStatusDto {\n    tag?: string | undefined;\n    stepIndex?: number | undefined;\n    stepCount?: number | undefined;\n    referentie?: string | undefined;\n    manual?: boolean | undefined;\n    reden?: string | undefined;\n}\n\nexport interface AdresDto {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface ApplicationDetailDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    draft?: any | undefined;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface ApplicationSummaryDto {\n    id?: string | undefined;\n    type?: string | undefined;\n    status?: AanvraagStatusDto;\n    documentIds?: string[] | undefined;\n    createdAt?: string | undefined;\n    updatedAt?: string | undefined;\n    submittedAt?: string | undefined;\n}\n\nexport interface BriefDto {\n    briefId?: string | undefined;\n    beroep?: string | undefined;\n    templateId?: string | undefined;\n    placeholders?: PlaceholderDefDto[] | undefined;\n    sections?: LetterSectionDto[] | undefined;\n    status?: BriefStatusDto;\n    drafterId?: string | undefined;\n}\n\nexport interface BriefStatusDto {\n    tag?: string | undefined;\n    submittedBy?: string | undefined;\n    submittedAt?: string | undefined;\n    approvedBy?: string | undefined;\n    approvedAt?: string | undefined;\n    rejectedBy?: string | undefined;\n    rejectedAt?: string | undefined;\n    comments?: string | undefined;\n    sentAt?: string | undefined;\n}\n\nexport interface BriefViewDto {\n    brief?: BriefDto;\n    availablePassages?: LibraryPassageDto[] | undefined;\n}\n\nexport interface BrpAddressDto {\n    gevonden?: boolean;\n    adres?: AdresDto;\n}\n\nexport interface ChangeRequestRequest {\n    straat?: string | undefined;\n    postcode?: string | undefined;\n    woonplaats?: string | undefined;\n}\n\nexport interface CreateApplicationRequest {\n    type?: string | undefined;\n}\n\nexport interface DashboardViewDto {\n    registration?: RegistrationDto;\n    person?: PersonDto;\n    decisions?: HerregistratieDecisionsDto;\n}\n\nexport interface DocumentCategoryDto {\n    categoryId?: string | undefined;\n    label?: string | undefined;\n    description?: string | undefined;\n    required?: boolean;\n    acceptedTypes?: string[] | undefined;\n    maxSizeMb?: number;\n    multiple?: boolean;\n    allowPostDelivery?: boolean;\n}\n\nexport interface DocumentRefDto {\n    categoryId?: string | undefined;\n    channel?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport interface DraftSyncRequest {\n    draft?: any;\n    stepIndex?: number;\n    stepCount?: number;\n    documentIds?: string[] | undefined;\n}\n\nexport interface DuoDiplomaDto {\n    id?: string | undefined;\n    naam?: string | undefined;\n    instelling?: string | undefined;\n    jaar?: number;\n    beroep?: string | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface DuoLookupDto {\n    diplomas?: DuoDiplomaDto[] | undefined;\n    handmatig?: ManualDiplomaPolicyDto;\n}\n\nexport interface HerregistratieDecisionsDto {\n    eligibleForHerregistratie?: boolean;\n    herregistratieReason?: string | undefined;\n}\n\nexport interface HerregistratieRequest {\n    uren?: number;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface IntakePolicyDto {\n    scholingThreshold?: number;\n}\n\nexport interface IntakeRequest {\n    uren?: number;\n}\n\nexport interface LetterBlockDto {\n    type?: string | undefined;\n    blockId?: string | undefined;\n    content?: RichTextBlockDto;\n    sourcePassageId?: string | undefined;\n    sourceVersion?: number | undefined;\n    edited?: boolean | undefined;\n}\n\nexport interface LetterSectionDto {\n    sectionKey?: string | undefined;\n    title?: string | undefined;\n    required?: boolean;\n    blocks?: LetterBlockDto[] | undefined;\n    locked?: boolean;\n}\n\nexport interface LibraryPassageDto {\n    passageId?: string | undefined;\n    scope?: string | undefined;\n    sectionKey?: string | undefined;\n    label?: string | undefined;\n    content?: RichTextBlockDto;\n    version?: number;\n    beroep?: string | undefined;\n}\n\nexport interface ManualDiplomaPolicyDto {\n    beroepen?: string[] | undefined;\n    policyQuestions?: PolicyQuestionDto[] | undefined;\n}\n\nexport interface ParagraphDto {\n    nodes?: RichTextNodeDto[] | undefined;\n    list?: string | undefined;\n}\n\nexport interface PersonDto {\n    naam?: string | undefined;\n    geboortedatum?: string | undefined;\n    adres?: AdresDto;\n}\n\nexport interface PlaceholderDefDto {\n    key?: string | undefined;\n    label?: string | undefined;\n    autoResolvable?: boolean;\n    fillable?: boolean | undefined;\n    deprecated?: boolean | undefined;\n}\n\nexport interface PolicyQuestionDto {\n    id?: string | undefined;\n    vraag?: string | undefined;\n    type?: string | undefined;\n}\n\nexport interface ProblemDetails {\n    type?: string | undefined;\n    title?: string | undefined;\n    status?: number | undefined;\n    detail?: string | undefined;\n    instance?: string | undefined;\n\n    [key: string]: any;\n}\n\nexport interface ReferentieResponse {\n    referentie?: string | undefined;\n}\n\nexport interface RegistratieRequest {\n    diplomaHerkomst?: string | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface RegistrationDto {\n    bigNummer?: string | undefined;\n    naam?: string | undefined;\n    beroep?: string | undefined;\n    registratiedatum?: string | undefined;\n    geboortedatum?: string | undefined;\n    status?: RegistrationStatusDto;\n}\n\nexport interface RegistrationStatusDto {\n    tag?: string | undefined;\n    herregistratieDatum?: string | undefined;\n    geschorstTot?: string | undefined;\n    reden?: string | undefined;\n    doorgehaaldOp?: string | undefined;\n}\n\nexport interface RejectBriefRequest {\n    comments?: string | undefined;\n}\n\nexport interface RichTextBlockDto {\n    paragraphs?: ParagraphDto[] | undefined;\n}\n\nexport interface RichTextNodeDto {\n    type?: string | undefined;\n    text?: string | undefined;\n    marks?: string[] | undefined;\n    key?: string | undefined;\n}\n\nexport interface SaveBriefRequest {\n    sections?: LetterSectionDto[] | undefined;\n}\n\nexport interface SubmitApplicationRequest {\n    diplomaHerkomst?: string | undefined;\n    uren?: number | undefined;\n    documents?: DocumentRefDto[] | undefined;\n}\n\nexport interface SubmitApplicationResponse {\n    referentie?: string | undefined;\n    status?: AanvraagStatusDto;\n}\n\nexport interface UploadCategoriesDto {\n    categories?: DocumentCategoryDto[] | undefined;\n}\n\nexport interface UploadStatusDto {\n    results?: UploadStatusItemDto[] | undefined;\n}\n\nexport interface UploadStatusItemDto {\n    localId?: string | undefined;\n    status?: string | undefined;\n    documentId?: string | undefined;\n}\n\nexport class SwaggerException extends Error {\n    override message: string;\n    status: number;\n    response: string;\n    headers: { [key: string]: any; };\n    result: any;\n\n    constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n        super();\n\n        this.message = message;\n        this.status = status;\n        this.response = response;\n        this.headers = headers;\n        this.result = result;\n    }\n\n    protected isSwaggerException = true;\n\n    static isSwaggerException(obj: any): obj is SwaggerException {\n        return obj.isSwaggerException === true;\n    }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n    if (result !== null && result !== undefined)\n        throw result;\n    else\n        throw new SwaggerException(message, status, response, headers, null);\n}",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "message",
                        "type": "string",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "status",
                        "type": "number",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "response",
                        "type": "string",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "headers",
                        "type": "literal type",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "result",
                        "type": "any",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 1536,
                "jsdoctags": [
                    {
                        "name": "message",
                        "type": "string",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "status",
                        "type": "number",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "response",
                        "type": "string",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "headers",
                        "type": "literal type",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "result",
                        "type": "any",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [
                {
                    "name": "headers",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "literal type",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 1535
                },
                {
                    "name": "isSwaggerException",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 1548,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "message",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 1532,
                    "modifierKind": [
                        164
                    ]
                },
                {
                    "name": "response",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 1534
                },
                {
                    "name": "result",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 1536
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 1533
                }
            ],
            "methods": [
                {
                    "name": "isSwaggerException",
                    "args": [
                        {
                            "name": "obj",
                            "type": "any",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "SwaggerException",
                    "typeParameters": [],
                    "line": 1550,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        126
                    ],
                    "jsdoctags": [
                        {
                            "name": "obj",
                            "type": "any",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "indexSignatures": [],
            "extends": [
                "Error"
            ],
            "hostBindings": [],
            "hostListeners": []
        }
    ],
    "directives": [
        {
            "name": "AsyncEmptyDirective",
            "id": "directive-AsyncEmptyDirective-30c385334293d4c0ab2ad3a6dbd4ec3f386d2edcd2b4020dcb7eb85f7790ee7a97544620fa4f3cd56c9ec5c9b51db5248a4dd0c4e666b4f9b6a2c8ede163f096",
            "file": "src/app/shared/ui/async/async.component.ts",
            "type": "directive",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Component, Directive, TemplateRef, computed, contentChild, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport type { Resource } from '@angular/core';\nimport { SpinnerComponent } from '@shared/ui/spinner/spinner.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { RemoteData, fromResource, foldRemote } from '@shared/application/remote-data';\n\n/* Slot markers. Put on <ng-template> children of <app-async>. */\n@Directive({ selector: '[appAsyncLoaded]' })\nexport class AsyncLoadedDirective {\n  constructor(public tpl: TemplateRef<{ $implicit: unknown }>) {}\n}\n@Directive({ selector: '[appAsyncLoading]' })\nexport class AsyncLoadingDirective {\n  constructor(public tpl: TemplateRef<unknown>) {}\n}\n@Directive({ selector: '[appAsyncEmpty]' })\nexport class AsyncEmptyDirective {\n  constructor(public tpl: TemplateRef<unknown>) {}\n}\n@Directive({ selector: '[appAsyncError]' })\nexport class AsyncErrorDirective {\n  constructor(public tpl: TemplateRef<{ $implicit: Error | undefined; retry: () => void }>) {}\n}\n\n/**\n * Renders exactly ONE of loading / empty / error / loaded for a signal-based\n * resource (e.g. httpResource). Built on a RemoteData tagged union (see\n * core/remote-data.ts), so the states are mutually exclusive by construction —\n * the UI can never show two at once (\"impossible states\"). Unprovided slots\n * fall back to sensible defaults.\n */\n@Component({\n  selector: 'app-async',\n  imports: [NgTemplateOutlet, SpinnerComponent, AlertComponent, ButtonComponent],\n  template: `\n    <div aria-live=\"polite\" [attr.aria-busy]=\"rd().tag === 'Loading' ? 'true' : null\">\n    @switch (rd().tag) {\n      @case ('Loading') {\n        @if (loadingTpl()) { <ng-container [ngTemplateOutlet]=\"loadingTpl()!.tpl\" /> }\n        @else { <app-spinner /> }\n      }\n      @case ('Failure') {\n        @if (errorTpl()) {\n          <ng-container [ngTemplateOutlet]=\"errorTpl()!.tpl\"\n            [ngTemplateOutletContext]=\"{ $implicit: error(), retry: retry }\" />\n        } @else {\n          <app-alert type=\"error\">{{ errorText() }}</app-alert>\n          <div style=\"margin-top:1rem\">\n            <app-button variant=\"secondary\" (click)=\"retry()\">{{ retryText() }}</app-button>\n          </div>\n        }\n      }\n      @case ('Empty') {\n        @if (emptyTpl()) { <ng-container [ngTemplateOutlet]=\"emptyTpl()!.tpl\" /> }\n        @else { <p>{{ emptyText() }}</p> }\n      }\n      @case ('Success') {\n        <ng-container [ngTemplateOutlet]=\"loadedTpl().tpl\"\n          [ngTemplateOutletContext]=\"{ $implicit: value() }\" />\n      }\n    }\n    </div>\n  `,\n})\nexport class AsyncComponent<T> {\n  // Two ways to feed this component:\n  //  [resource] — a raw httpResource (the common case), or\n  //  [data]     — an already-combined RemoteData (e.g. from a store via map2).\n  resource = input<Resource<T>>();\n  data = input<RemoteData<Error | undefined, T>>();\n  isEmpty = input<(v: T) => boolean>(() => false);\n\n  // Shared/English component: copy lives behind language-agnostic inputs. Defaults are\n  // localizable via $localize (source = default locale, currently nl); callers may override.\n  errorText = input($localize`:@@async.error:Er ging iets mis bij het laden van de gegevens.`);\n  retryText = input($localize`:@@async.retry:Opnieuw proberen`);\n  emptyText = input($localize`:@@async.empty:Geen gegevens gevonden.`);\n\n  loadedTpl = contentChild.required(AsyncLoadedDirective);\n  loadingTpl = contentChild(AsyncLoadingDirective);\n  emptyTpl = contentChild(AsyncEmptyDirective);\n  errorTpl = contentChild(AsyncErrorDirective);\n\n  // Single source of truth: the supplied RemoteData, or the resource projected into one.\n  protected rd = computed<RemoteData<Error | undefined, T>>(() => {\n    const data = this.data();\n    if (data) return data;\n    const r = this.resource();\n    return r ? fromResource(r, this.isEmpty()) : { tag: 'Loading' };\n  });\n\n  // value/error are pulled out via the exhaustive fold — only Success carries a\n  // value, only Failure carries an error, so these can't lie.\n  protected value = computed(() =>\n    foldRemote(this.rd(), { loading: () => undefined, empty: () => undefined, failure: () => undefined, success: (v) => v }),\n  );\n  protected error = computed(() =>\n    foldRemote(this.rd(), { loading: () => undefined, empty: () => undefined, failure: (e) => e, success: () => undefined }),\n  );\n\n  retry = () => {\n    const r = this.resource();\n    if (r && 'reload' in r && typeof (r as { reload?: unknown }).reload === 'function') {\n      (r as { reload: () => void }).reload();\n    }\n  };\n}\n\n/** Convenience: import this array to get the wrapper + all slot directives. */\nexport const ASYNC = [\n  AsyncComponent, AsyncLoadedDirective, AsyncLoadingDirective,\n  AsyncEmptyDirective, AsyncErrorDirective,\n] as const;\n",
            "selector": "[appAsyncEmpty]",
            "providers": [],
            "hostDirectives": [],
            "standalone": false,
            "inputsClass": [],
            "outputsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "propertiesClass": [
                {
                    "name": "tpl",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "TemplateRef<unknown>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 20,
                    "modifierKind": [
                        125
                    ]
                }
            ],
            "methodsClass": [],
            "extends": [],
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "tpl",
                        "type": "TemplateRef<unknown>",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 19,
                "jsdoctags": [
                    {
                        "name": "tpl",
                        "type": "TemplateRef<unknown>",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            }
        },
        {
            "name": "AsyncErrorDirective",
            "id": "directive-AsyncErrorDirective-30c385334293d4c0ab2ad3a6dbd4ec3f386d2edcd2b4020dcb7eb85f7790ee7a97544620fa4f3cd56c9ec5c9b51db5248a4dd0c4e666b4f9b6a2c8ede163f096",
            "file": "src/app/shared/ui/async/async.component.ts",
            "type": "directive",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Component, Directive, TemplateRef, computed, contentChild, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport type { Resource } from '@angular/core';\nimport { SpinnerComponent } from '@shared/ui/spinner/spinner.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { RemoteData, fromResource, foldRemote } from '@shared/application/remote-data';\n\n/* Slot markers. Put on <ng-template> children of <app-async>. */\n@Directive({ selector: '[appAsyncLoaded]' })\nexport class AsyncLoadedDirective {\n  constructor(public tpl: TemplateRef<{ $implicit: unknown }>) {}\n}\n@Directive({ selector: '[appAsyncLoading]' })\nexport class AsyncLoadingDirective {\n  constructor(public tpl: TemplateRef<unknown>) {}\n}\n@Directive({ selector: '[appAsyncEmpty]' })\nexport class AsyncEmptyDirective {\n  constructor(public tpl: TemplateRef<unknown>) {}\n}\n@Directive({ selector: '[appAsyncError]' })\nexport class AsyncErrorDirective {\n  constructor(public tpl: TemplateRef<{ $implicit: Error | undefined; retry: () => void }>) {}\n}\n\n/**\n * Renders exactly ONE of loading / empty / error / loaded for a signal-based\n * resource (e.g. httpResource). Built on a RemoteData tagged union (see\n * core/remote-data.ts), so the states are mutually exclusive by construction —\n * the UI can never show two at once (\"impossible states\"). Unprovided slots\n * fall back to sensible defaults.\n */\n@Component({\n  selector: 'app-async',\n  imports: [NgTemplateOutlet, SpinnerComponent, AlertComponent, ButtonComponent],\n  template: `\n    <div aria-live=\"polite\" [attr.aria-busy]=\"rd().tag === 'Loading' ? 'true' : null\">\n    @switch (rd().tag) {\n      @case ('Loading') {\n        @if (loadingTpl()) { <ng-container [ngTemplateOutlet]=\"loadingTpl()!.tpl\" /> }\n        @else { <app-spinner /> }\n      }\n      @case ('Failure') {\n        @if (errorTpl()) {\n          <ng-container [ngTemplateOutlet]=\"errorTpl()!.tpl\"\n            [ngTemplateOutletContext]=\"{ $implicit: error(), retry: retry }\" />\n        } @else {\n          <app-alert type=\"error\">{{ errorText() }}</app-alert>\n          <div style=\"margin-top:1rem\">\n            <app-button variant=\"secondary\" (click)=\"retry()\">{{ retryText() }}</app-button>\n          </div>\n        }\n      }\n      @case ('Empty') {\n        @if (emptyTpl()) { <ng-container [ngTemplateOutlet]=\"emptyTpl()!.tpl\" /> }\n        @else { <p>{{ emptyText() }}</p> }\n      }\n      @case ('Success') {\n        <ng-container [ngTemplateOutlet]=\"loadedTpl().tpl\"\n          [ngTemplateOutletContext]=\"{ $implicit: value() }\" />\n      }\n    }\n    </div>\n  `,\n})\nexport class AsyncComponent<T> {\n  // Two ways to feed this component:\n  //  [resource] — a raw httpResource (the common case), or\n  //  [data]     — an already-combined RemoteData (e.g. from a store via map2).\n  resource = input<Resource<T>>();\n  data = input<RemoteData<Error | undefined, T>>();\n  isEmpty = input<(v: T) => boolean>(() => false);\n\n  // Shared/English component: copy lives behind language-agnostic inputs. Defaults are\n  // localizable via $localize (source = default locale, currently nl); callers may override.\n  errorText = input($localize`:@@async.error:Er ging iets mis bij het laden van de gegevens.`);\n  retryText = input($localize`:@@async.retry:Opnieuw proberen`);\n  emptyText = input($localize`:@@async.empty:Geen gegevens gevonden.`);\n\n  loadedTpl = contentChild.required(AsyncLoadedDirective);\n  loadingTpl = contentChild(AsyncLoadingDirective);\n  emptyTpl = contentChild(AsyncEmptyDirective);\n  errorTpl = contentChild(AsyncErrorDirective);\n\n  // Single source of truth: the supplied RemoteData, or the resource projected into one.\n  protected rd = computed<RemoteData<Error | undefined, T>>(() => {\n    const data = this.data();\n    if (data) return data;\n    const r = this.resource();\n    return r ? fromResource(r, this.isEmpty()) : { tag: 'Loading' };\n  });\n\n  // value/error are pulled out via the exhaustive fold — only Success carries a\n  // value, only Failure carries an error, so these can't lie.\n  protected value = computed(() =>\n    foldRemote(this.rd(), { loading: () => undefined, empty: () => undefined, failure: () => undefined, success: (v) => v }),\n  );\n  protected error = computed(() =>\n    foldRemote(this.rd(), { loading: () => undefined, empty: () => undefined, failure: (e) => e, success: () => undefined }),\n  );\n\n  retry = () => {\n    const r = this.resource();\n    if (r && 'reload' in r && typeof (r as { reload?: unknown }).reload === 'function') {\n      (r as { reload: () => void }).reload();\n    }\n  };\n}\n\n/** Convenience: import this array to get the wrapper + all slot directives. */\nexport const ASYNC = [\n  AsyncComponent, AsyncLoadedDirective, AsyncLoadingDirective,\n  AsyncEmptyDirective, AsyncErrorDirective,\n] as const;\n",
            "selector": "[appAsyncError]",
            "providers": [],
            "hostDirectives": [],
            "standalone": false,
            "inputsClass": [],
            "outputsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "propertiesClass": [
                {
                    "name": "tpl",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "TemplateRef<literal type>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 24,
                    "modifierKind": [
                        125
                    ]
                }
            ],
            "methodsClass": [],
            "extends": [],
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "tpl",
                        "type": "TemplateRef<literal type>",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 23,
                "jsdoctags": [
                    {
                        "name": "tpl",
                        "type": "TemplateRef<literal type>",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            }
        },
        {
            "name": "AsyncLoadedDirective",
            "id": "directive-AsyncLoadedDirective-30c385334293d4c0ab2ad3a6dbd4ec3f386d2edcd2b4020dcb7eb85f7790ee7a97544620fa4f3cd56c9ec5c9b51db5248a4dd0c4e666b4f9b6a2c8ede163f096",
            "file": "src/app/shared/ui/async/async.component.ts",
            "type": "directive",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Component, Directive, TemplateRef, computed, contentChild, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport type { Resource } from '@angular/core';\nimport { SpinnerComponent } from '@shared/ui/spinner/spinner.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { RemoteData, fromResource, foldRemote } from '@shared/application/remote-data';\n\n/* Slot markers. Put on <ng-template> children of <app-async>. */\n@Directive({ selector: '[appAsyncLoaded]' })\nexport class AsyncLoadedDirective {\n  constructor(public tpl: TemplateRef<{ $implicit: unknown }>) {}\n}\n@Directive({ selector: '[appAsyncLoading]' })\nexport class AsyncLoadingDirective {\n  constructor(public tpl: TemplateRef<unknown>) {}\n}\n@Directive({ selector: '[appAsyncEmpty]' })\nexport class AsyncEmptyDirective {\n  constructor(public tpl: TemplateRef<unknown>) {}\n}\n@Directive({ selector: '[appAsyncError]' })\nexport class AsyncErrorDirective {\n  constructor(public tpl: TemplateRef<{ $implicit: Error | undefined; retry: () => void }>) {}\n}\n\n/**\n * Renders exactly ONE of loading / empty / error / loaded for a signal-based\n * resource (e.g. httpResource). Built on a RemoteData tagged union (see\n * core/remote-data.ts), so the states are mutually exclusive by construction —\n * the UI can never show two at once (\"impossible states\"). Unprovided slots\n * fall back to sensible defaults.\n */\n@Component({\n  selector: 'app-async',\n  imports: [NgTemplateOutlet, SpinnerComponent, AlertComponent, ButtonComponent],\n  template: `\n    <div aria-live=\"polite\" [attr.aria-busy]=\"rd().tag === 'Loading' ? 'true' : null\">\n    @switch (rd().tag) {\n      @case ('Loading') {\n        @if (loadingTpl()) { <ng-container [ngTemplateOutlet]=\"loadingTpl()!.tpl\" /> }\n        @else { <app-spinner /> }\n      }\n      @case ('Failure') {\n        @if (errorTpl()) {\n          <ng-container [ngTemplateOutlet]=\"errorTpl()!.tpl\"\n            [ngTemplateOutletContext]=\"{ $implicit: error(), retry: retry }\" />\n        } @else {\n          <app-alert type=\"error\">{{ errorText() }}</app-alert>\n          <div style=\"margin-top:1rem\">\n            <app-button variant=\"secondary\" (click)=\"retry()\">{{ retryText() }}</app-button>\n          </div>\n        }\n      }\n      @case ('Empty') {\n        @if (emptyTpl()) { <ng-container [ngTemplateOutlet]=\"emptyTpl()!.tpl\" /> }\n        @else { <p>{{ emptyText() }}</p> }\n      }\n      @case ('Success') {\n        <ng-container [ngTemplateOutlet]=\"loadedTpl().tpl\"\n          [ngTemplateOutletContext]=\"{ $implicit: value() }\" />\n      }\n    }\n    </div>\n  `,\n})\nexport class AsyncComponent<T> {\n  // Two ways to feed this component:\n  //  [resource] — a raw httpResource (the common case), or\n  //  [data]     — an already-combined RemoteData (e.g. from a store via map2).\n  resource = input<Resource<T>>();\n  data = input<RemoteData<Error | undefined, T>>();\n  isEmpty = input<(v: T) => boolean>(() => false);\n\n  // Shared/English component: copy lives behind language-agnostic inputs. Defaults are\n  // localizable via $localize (source = default locale, currently nl); callers may override.\n  errorText = input($localize`:@@async.error:Er ging iets mis bij het laden van de gegevens.`);\n  retryText = input($localize`:@@async.retry:Opnieuw proberen`);\n  emptyText = input($localize`:@@async.empty:Geen gegevens gevonden.`);\n\n  loadedTpl = contentChild.required(AsyncLoadedDirective);\n  loadingTpl = contentChild(AsyncLoadingDirective);\n  emptyTpl = contentChild(AsyncEmptyDirective);\n  errorTpl = contentChild(AsyncErrorDirective);\n\n  // Single source of truth: the supplied RemoteData, or the resource projected into one.\n  protected rd = computed<RemoteData<Error | undefined, T>>(() => {\n    const data = this.data();\n    if (data) return data;\n    const r = this.resource();\n    return r ? fromResource(r, this.isEmpty()) : { tag: 'Loading' };\n  });\n\n  // value/error are pulled out via the exhaustive fold — only Success carries a\n  // value, only Failure carries an error, so these can't lie.\n  protected value = computed(() =>\n    foldRemote(this.rd(), { loading: () => undefined, empty: () => undefined, failure: () => undefined, success: (v) => v }),\n  );\n  protected error = computed(() =>\n    foldRemote(this.rd(), { loading: () => undefined, empty: () => undefined, failure: (e) => e, success: () => undefined }),\n  );\n\n  retry = () => {\n    const r = this.resource();\n    if (r && 'reload' in r && typeof (r as { reload?: unknown }).reload === 'function') {\n      (r as { reload: () => void }).reload();\n    }\n  };\n}\n\n/** Convenience: import this array to get the wrapper + all slot directives. */\nexport const ASYNC = [\n  AsyncComponent, AsyncLoadedDirective, AsyncLoadingDirective,\n  AsyncEmptyDirective, AsyncErrorDirective,\n] as const;\n",
            "selector": "[appAsyncLoaded]",
            "providers": [],
            "hostDirectives": [],
            "standalone": false,
            "inputsClass": [],
            "outputsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "propertiesClass": [
                {
                    "name": "tpl",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "TemplateRef<literal type>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 12,
                    "modifierKind": [
                        125
                    ]
                }
            ],
            "methodsClass": [],
            "extends": [],
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "tpl",
                        "type": "TemplateRef<literal type>",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 11,
                "jsdoctags": [
                    {
                        "name": "tpl",
                        "type": "TemplateRef<literal type>",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            }
        },
        {
            "name": "AsyncLoadingDirective",
            "id": "directive-AsyncLoadingDirective-30c385334293d4c0ab2ad3a6dbd4ec3f386d2edcd2b4020dcb7eb85f7790ee7a97544620fa4f3cd56c9ec5c9b51db5248a4dd0c4e666b4f9b6a2c8ede163f096",
            "file": "src/app/shared/ui/async/async.component.ts",
            "type": "directive",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Component, Directive, TemplateRef, computed, contentChild, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport type { Resource } from '@angular/core';\nimport { SpinnerComponent } from '@shared/ui/spinner/spinner.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { RemoteData, fromResource, foldRemote } from '@shared/application/remote-data';\n\n/* Slot markers. Put on <ng-template> children of <app-async>. */\n@Directive({ selector: '[appAsyncLoaded]' })\nexport class AsyncLoadedDirective {\n  constructor(public tpl: TemplateRef<{ $implicit: unknown }>) {}\n}\n@Directive({ selector: '[appAsyncLoading]' })\nexport class AsyncLoadingDirective {\n  constructor(public tpl: TemplateRef<unknown>) {}\n}\n@Directive({ selector: '[appAsyncEmpty]' })\nexport class AsyncEmptyDirective {\n  constructor(public tpl: TemplateRef<unknown>) {}\n}\n@Directive({ selector: '[appAsyncError]' })\nexport class AsyncErrorDirective {\n  constructor(public tpl: TemplateRef<{ $implicit: Error | undefined; retry: () => void }>) {}\n}\n\n/**\n * Renders exactly ONE of loading / empty / error / loaded for a signal-based\n * resource (e.g. httpResource). Built on a RemoteData tagged union (see\n * core/remote-data.ts), so the states are mutually exclusive by construction —\n * the UI can never show two at once (\"impossible states\"). Unprovided slots\n * fall back to sensible defaults.\n */\n@Component({\n  selector: 'app-async',\n  imports: [NgTemplateOutlet, SpinnerComponent, AlertComponent, ButtonComponent],\n  template: `\n    <div aria-live=\"polite\" [attr.aria-busy]=\"rd().tag === 'Loading' ? 'true' : null\">\n    @switch (rd().tag) {\n      @case ('Loading') {\n        @if (loadingTpl()) { <ng-container [ngTemplateOutlet]=\"loadingTpl()!.tpl\" /> }\n        @else { <app-spinner /> }\n      }\n      @case ('Failure') {\n        @if (errorTpl()) {\n          <ng-container [ngTemplateOutlet]=\"errorTpl()!.tpl\"\n            [ngTemplateOutletContext]=\"{ $implicit: error(), retry: retry }\" />\n        } @else {\n          <app-alert type=\"error\">{{ errorText() }}</app-alert>\n          <div style=\"margin-top:1rem\">\n            <app-button variant=\"secondary\" (click)=\"retry()\">{{ retryText() }}</app-button>\n          </div>\n        }\n      }\n      @case ('Empty') {\n        @if (emptyTpl()) { <ng-container [ngTemplateOutlet]=\"emptyTpl()!.tpl\" /> }\n        @else { <p>{{ emptyText() }}</p> }\n      }\n      @case ('Success') {\n        <ng-container [ngTemplateOutlet]=\"loadedTpl().tpl\"\n          [ngTemplateOutletContext]=\"{ $implicit: value() }\" />\n      }\n    }\n    </div>\n  `,\n})\nexport class AsyncComponent<T> {\n  // Two ways to feed this component:\n  //  [resource] — a raw httpResource (the common case), or\n  //  [data]     — an already-combined RemoteData (e.g. from a store via map2).\n  resource = input<Resource<T>>();\n  data = input<RemoteData<Error | undefined, T>>();\n  isEmpty = input<(v: T) => boolean>(() => false);\n\n  // Shared/English component: copy lives behind language-agnostic inputs. Defaults are\n  // localizable via $localize (source = default locale, currently nl); callers may override.\n  errorText = input($localize`:@@async.error:Er ging iets mis bij het laden van de gegevens.`);\n  retryText = input($localize`:@@async.retry:Opnieuw proberen`);\n  emptyText = input($localize`:@@async.empty:Geen gegevens gevonden.`);\n\n  loadedTpl = contentChild.required(AsyncLoadedDirective);\n  loadingTpl = contentChild(AsyncLoadingDirective);\n  emptyTpl = contentChild(AsyncEmptyDirective);\n  errorTpl = contentChild(AsyncErrorDirective);\n\n  // Single source of truth: the supplied RemoteData, or the resource projected into one.\n  protected rd = computed<RemoteData<Error | undefined, T>>(() => {\n    const data = this.data();\n    if (data) return data;\n    const r = this.resource();\n    return r ? fromResource(r, this.isEmpty()) : { tag: 'Loading' };\n  });\n\n  // value/error are pulled out via the exhaustive fold — only Success carries a\n  // value, only Failure carries an error, so these can't lie.\n  protected value = computed(() =>\n    foldRemote(this.rd(), { loading: () => undefined, empty: () => undefined, failure: () => undefined, success: (v) => v }),\n  );\n  protected error = computed(() =>\n    foldRemote(this.rd(), { loading: () => undefined, empty: () => undefined, failure: (e) => e, success: () => undefined }),\n  );\n\n  retry = () => {\n    const r = this.resource();\n    if (r && 'reload' in r && typeof (r as { reload?: unknown }).reload === 'function') {\n      (r as { reload: () => void }).reload();\n    }\n  };\n}\n\n/** Convenience: import this array to get the wrapper + all slot directives. */\nexport const ASYNC = [\n  AsyncComponent, AsyncLoadedDirective, AsyncLoadingDirective,\n  AsyncEmptyDirective, AsyncErrorDirective,\n] as const;\n",
            "selector": "[appAsyncLoading]",
            "providers": [],
            "hostDirectives": [],
            "standalone": false,
            "inputsClass": [],
            "outputsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "propertiesClass": [
                {
                    "name": "tpl",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "TemplateRef<unknown>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 16,
                    "modifierKind": [
                        125
                    ]
                }
            ],
            "methodsClass": [],
            "extends": [],
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "tpl",
                        "type": "TemplateRef<unknown>",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 15,
                "jsdoctags": [
                    {
                        "name": "tpl",
                        "type": "TemplateRef<unknown>",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            }
        }
    ],
    "components": [
        {
            "name": "AanvraagBlockComponent",
            "id": "component-AanvraagBlockComponent-435c9a2cad5ba9d488a371453d36c03838e040797afaa9e56c719a7387dbb02923f1120c04171fca018937ef6540cfddb6ec58756ecb46dda201a5e8f8c3e2e8",
            "file": "src/app/registratie/ui/aanvraag-block/aanvraag-block.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-aanvraag-block",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:contents} /* see choice-link.component.ts (keeps <li> a direct <ul> child) */\n    .actions{display:flex;align-items:center;gap:var(--rhc-space-max-md);margin-block-start:var(--rhc-space-max-sm)}\n  "
            ],
            "template": "@if (aanvraag().status.tag === 'Concept') {\n  <app-alert type=\"warning\">\n    <h3 class=\"h5\">{{ typeLabel() }}</h3>\n    <p>{{ conceptText() }}</p>\n    <div class=\"actions\">\n      @if (actions().includes('cancel')) {\n        <app-button variant=\"subtle\" (click)=\"cancel.emit()\" i18n=\"@@aanvraagBlock.verwijderen\">Verwijderen</app-button>\n      }\n      @if (actions().includes('resume')) {\n        <app-button (click)=\"resume.emit()\" i18n=\"@@aanvraagBlock.openen\">Aanvraag openen</app-button>\n      }\n    </div>\n  </app-alert>\n} @else {\n  <app-choice-link [heading]=\"typeLabel()\" [instructions]=\"instructions()\" />\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "aanvraag",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Aanvraag",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 48,
                    "required": true
                }
            ],
            "outputsClass": [
                {
                    "name": "cancel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 51,
                    "required": false
                },
                {
                    "name": "resume",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 50,
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "actions",
                    "defaultValue": "computed(() => blockActions(this.aanvraag().status))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 54,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "conceptText",
                    "defaultValue": "computed(() => {\n    const s = this.aanvraag().status;\n    if (s.tag !== 'Concept') return '';\n    return $localize`:@@aanvraagBlock.conceptMelding:Deze aanvraag is nog niet volledig afgerond — u bent gebleven bij stap ${s.stepIndex + 1}:stap: van ${s.stepCount}:totaal:. Rond de aanvraag af vóór ${formatNL(this.deadline())}:datum:.`;\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The melding body for a Concept: wizard not finished + complete-before date.</p>\n",
                    "line": 65,
                    "rawdescription": "\nThe melding body for a Concept: wizard not finished + complete-before date.",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "deadline",
                    "defaultValue": "computed(() => {\n    const d = new Date(this.aanvraag().createdAt);\n    d.setDate(d.getDate() + 30);\n    return d.toISOString();\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 58,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "instructions",
                    "defaultValue": "computed(() => {\n    const status = this.statusText();\n    const sub = this.subtitle();\n    return sub ? `${status} ${sub}` : status;\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 89,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "statusText",
                    "defaultValue": "computed(() => {\n    const s = this.aanvraag().status;\n    switch (s.tag) {\n      case 'Concept': return '';\n      case 'InBehandeling': return $localize`:@@aanvraagBlock.inBehandeling:Referentie ${s.referentie}:ref: · ingediend op ${formatNL(this.aanvraag().submittedAt)}:datum:`;\n      case 'Goedgekeurd': return $localize`:@@aanvraagBlock.goedgekeurd:Referentie ${s.referentie}:ref:`;\n      case 'Afgewezen': return $localize`:@@aanvraagBlock.afgewezen:Referentie ${s.referentie}:ref:`;\n    }\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 72,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "subtitle",
                    "defaultValue": "computed(() => {\n    const s = this.aanvraag().status;\n    if (s.tag === 'InBehandeling' && s.manual) return $localize`:@@aanvraagBlock.manual:Uw aanvraag wordt handmatig beoordeeld in de backoffice.`;\n    if (s.tag === 'Afgewezen') return s.reden;\n    return '';\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 82,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "typeLabel",
                    "defaultValue": "computed(() => TYPE_LABELS[this.aanvraag().type])",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 53,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "ButtonComponent",
                    "type": "component"
                },
                {
                    "name": "AlertComponent",
                    "type": "component"
                },
                {
                    "name": "ChoiceLinkComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Organism: one application on the dashboard. A resumable Concept (&quot;lopende\naanvraag&quot;) renders as a CIBG &quot;melding&quot; (warning) with its actions — verwijderen\nas a link, aanvraag openen as a button; a submitted/resolved status renders as a\nplain keuzelijst card. Which actions show is driven by the pure\n<code>blockActions(status)</code>; the block only renders. NOTE: the caller places the two\nshapes differently — a Concept melding is a block element, the rest are <code>&lt;li&gt;</code>s\nthat must sit inside a keuzelijst <code>&lt;ul&gt;</code> (see dashboard.page.ts).</p>\n",
            "rawdescription": "\nOrganism: one application on the dashboard. A resumable Concept (\"lopende\naanvraag\") renders as a CIBG \"melding\" (warning) with its actions — verwijderen\nas a link, aanvraag openen as a button; a submitted/resolved status renders as a\nplain keuzelijst card. Which actions show is driven by the pure\n`blockActions(status)`; the block only renders. NOTE: the caller places the two\nshapes differently — a Concept melding is a block element, the rest are `<li>`s\nthat must sit inside a keuzelijst `<ul>` (see dashboard.page.ts).",
            "type": "component",
            "sourceCode": "import { Component, computed, input, output } from '@angular/core';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { ChoiceLinkComponent } from '@shared/ui/choice-link/choice-link.component';\nimport { Aanvraag, AanvraagType } from '@registratie/domain/aanvraag';\nimport { blockActions } from '@registratie/domain/block-actions';\n\nconst TYPE_LABELS: Record<AanvraagType, string> = {\n  registratie: $localize`:@@aanvraagBlock.type.registratie:Inschrijving`,\n  herregistratie: $localize`:@@aanvraagBlock.type.herregistratie:Herregistratie`,\n  intake: $localize`:@@aanvraagBlock.type.intake:Herregistratie-intake`,\n};\n\n/** Organism: one application on the dashboard. A resumable Concept (\"lopende\n    aanvraag\") renders as a CIBG \"melding\" (warning) with its actions — verwijderen\n    as a link, aanvraag openen as a button; a submitted/resolved status renders as a\n    plain keuzelijst card. Which actions show is driven by the pure\n    `blockActions(status)`; the block only renders. NOTE: the caller places the two\n    shapes differently — a Concept melding is a block element, the rest are `<li>`s\n    that must sit inside a keuzelijst `<ul>` (see dashboard.page.ts). */\n@Component({\n  selector: 'app-aanvraag-block',\n  imports: [ButtonComponent, AlertComponent, ChoiceLinkComponent],\n  styles: [`\n    :host{display:contents} /* see choice-link.component.ts (keeps <li> a direct <ul> child) */\n    .actions{display:flex;align-items:center;gap:var(--rhc-space-max-md);margin-block-start:var(--rhc-space-max-sm)}\n  `],\n  template: `\n    @if (aanvraag().status.tag === 'Concept') {\n      <app-alert type=\"warning\">\n        <h3 class=\"h5\">{{ typeLabel() }}</h3>\n        <p>{{ conceptText() }}</p>\n        <div class=\"actions\">\n          @if (actions().includes('cancel')) {\n            <app-button variant=\"subtle\" (click)=\"cancel.emit()\" i18n=\"@@aanvraagBlock.verwijderen\">Verwijderen</app-button>\n          }\n          @if (actions().includes('resume')) {\n            <app-button (click)=\"resume.emit()\" i18n=\"@@aanvraagBlock.openen\">Aanvraag openen</app-button>\n          }\n        </div>\n      </app-alert>\n    } @else {\n      <app-choice-link [heading]=\"typeLabel()\" [instructions]=\"instructions()\" />\n    }\n  `,\n})\nexport class AanvraagBlockComponent {\n  aanvraag = input.required<Aanvraag>();\n\n  resume = output<void>();\n  cancel = output<void>();\n\n  protected typeLabel = computed(() => TYPE_LABELS[this.aanvraag().type]);\n  protected actions = computed(() => blockActions(this.aanvraag().status));\n\n  // ponytail: display-only deadline derived as createdAt + 30 dagen; move to a\n  // server-sent `completeBefore` on the DTO when the expiry rule becomes real.\n  private deadline = computed(() => {\n    const d = new Date(this.aanvraag().createdAt);\n    d.setDate(d.getDate() + 30);\n    return d.toISOString();\n  });\n\n  /** The melding body for a Concept: wizard not finished + complete-before date. */\n  protected conceptText = computed(() => {\n    const s = this.aanvraag().status;\n    if (s.tag !== 'Concept') return '';\n    return $localize`:@@aanvraagBlock.conceptMelding:Deze aanvraag is nog niet volledig afgerond — u bent gebleven bij stap ${s.stepIndex + 1}:stap: van ${s.stepCount}:totaal:. Rond de aanvraag af vóór ${formatNL(this.deadline())}:datum:.`;\n  });\n\n  // Status-tag → the choice's description line (the UI's mapping, not a domain rule).\n  private statusText = computed(() => {\n    const s = this.aanvraag().status;\n    switch (s.tag) {\n      case 'Concept': return '';\n      case 'InBehandeling': return $localize`:@@aanvraagBlock.inBehandeling:Referentie ${s.referentie}:ref: · ingediend op ${formatNL(this.aanvraag().submittedAt)}:datum:`;\n      case 'Goedgekeurd': return $localize`:@@aanvraagBlock.goedgekeurd:Referentie ${s.referentie}:ref:`;\n      case 'Afgewezen': return $localize`:@@aanvraagBlock.afgewezen:Referentie ${s.referentie}:ref:`;\n    }\n  });\n  // Secondary note appended to the status line, when there's one to show.\n  private subtitle = computed(() => {\n    const s = this.aanvraag().status;\n    if (s.tag === 'InBehandeling' && s.manual) return $localize`:@@aanvraagBlock.manual:Uw aanvraag wordt handmatig beoordeeld in de backoffice.`;\n    if (s.tag === 'Afgewezen') return s.reden;\n    return '';\n  });\n  // The keuzelijst has one description paragraph — combine status + secondary note.\n  protected instructions = computed(() => {\n    const status = this.statusText();\n    const sub = this.subtitle();\n    return sub ? `${status} ${sub}` : status;\n  });\n}\n\nfunction formatNL(iso?: string): string {\n  return iso ? new Date(iso).toLocaleDateString('nl-NL', { day: 'numeric', month: 'long', year: 'numeric' }) : '';\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:contents} /* see choice-link.component.ts (keeps <li> a direct <ul> child) */\n    .actions{display:flex;align-items:center;gap:var(--rhc-space-max-md);margin-block-start:var(--rhc-space-max-sm)}\n  \n",
            "extends": []
        },
        {
            "name": "AddressFieldsComponent",
            "id": "component-AddressFieldsComponent-486bc51fe6e0580e73e1eaff7fadd0391ce7111e5b66294eff93f0f0dc84f19a80abb6dd269909450a94d13a2d7d24aa3b167dbe8472717ecd4208f00c5ae6bc",
            "file": "src/app/registratie/ui/address-fields/address-fields.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-address-fields",
            "styleUrls": [],
            "styles": [
                "\n    fieldset{border:0;margin:0;padding:0;min-inline-size:0}\n    legend{padding:0;font-weight:var(--rhc-text-font-weight-semi-bold);margin-block-end:var(--rhc-space-max-md)}\n  "
            ],
            "template": "<fieldset>\n  <legend>{{ legend() }}</legend>\n  <app-form-field i18n-label=\"@@address.straat\" label=\"Straat en huisnummer\" [fieldId]=\"idPrefix() + '-straat'\" required [error]=\"errors().straat\">\n    <app-text-input [inputId]=\"idPrefix() + '-straat'\" [invalid]=\"!!errors().straat\"\n      [ngModel]=\"value().straat\" (ngModelChange)=\"fieldChange.emit({ key: 'straat', value: $event })\"\n      name=\"straat\" [ngModelOptions]=\"{ standalone: true }\" />\n  </app-form-field>\n  <app-form-field i18n-label=\"@@address.postcode\" label=\"Postcode\" [fieldId]=\"idPrefix() + '-postcode'\" required [error]=\"errors().postcode\">\n    <app-text-input [inputId]=\"idPrefix() + '-postcode'\" [invalid]=\"!!errors().postcode\"\n      [ngModel]=\"value().postcode\" (ngModelChange)=\"fieldChange.emit({ key: 'postcode', value: $event })\"\n      name=\"postcode\" i18n-placeholder=\"@@address.postcodePlaceholder\" placeholder=\"1234 AB\" [ngModelOptions]=\"{ standalone: true }\" />\n  </app-form-field>\n  <app-form-field i18n-label=\"@@address.woonplaats\" label=\"Woonplaats\" [fieldId]=\"idPrefix() + '-woonplaats'\" required [error]=\"errors().woonplaats\">\n    <app-text-input [inputId]=\"idPrefix() + '-woonplaats'\" [invalid]=\"!!errors().woonplaats\"\n      [ngModel]=\"value().woonplaats\" (ngModelChange)=\"fieldChange.emit({ key: 'woonplaats', value: $event })\"\n      name=\"woonplaats\" [ngModelOptions]=\"{ standalone: true }\" />\n  </app-form-field>\n</fieldset>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "errors",
                    "defaultValue": "{}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AdresErrors",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 49,
                    "required": false
                },
                {
                    "name": "idPrefix",
                    "defaultValue": "'adres'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Prefix for field ids/labels — keeps them unique if two blocks ever co-exist.</p>\n",
                    "line": 51,
                    "rawdescription": "\nPrefix for field ids/labels — keeps them unique if two blocks ever co-exist.",
                    "required": false
                },
                {
                    "name": "legend",
                    "defaultValue": "$localize`:@@address.legend:Adres`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 52,
                    "required": false
                },
                {
                    "name": "value",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AdresValue",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 48,
                    "required": true
                }
            ],
            "outputsClass": [
                {
                    "name": "fieldChange",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "{ key: keyof AdresValue; value: string }",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 53,
                    "required": false
                }
            ],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "FormsModule",
                    "type": "module"
                },
                {
                    "name": "FormFieldComponent",
                    "type": "component"
                },
                {
                    "name": "TextInputComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Organism: the editable address block (straat / postcode / woonplaats), grouped\nin a fieldset/legend. Pure &amp; presentational — values in via <code>value</code>, errors in\nvia <code>errors</code>, every keystroke out via <code>fieldChange</code>. No store, no services, no\ninternal state; the container owns the Model and decides what a change means\n(registratie-wizard dispatches SetField; change-request-form sets its props).\nComposes the form-field molecule (×3) so labels/error wiring stay consistent.</p>\n",
            "rawdescription": "\nOrganism: the editable address block (straat / postcode / woonplaats), grouped\nin a fieldset/legend. Pure & presentational — values in via `value`, errors in\nvia `errors`, every keystroke out via `fieldChange`. No store, no services, no\ninternal state; the container owns the Model and decides what a change means\n(registratie-wizard dispatches SetField; change-request-form sets its props).\nComposes the form-field molecule (×3) so labels/error wiring stay consistent.",
            "type": "component",
            "sourceCode": "import { Component, input, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormFieldComponent } from '@shared/ui/form-field/form-field.component';\nimport { TextInputComponent } from '@shared/ui/text-input/text-input.component';\n\nexport interface AdresValue {\n  straat: string;\n  postcode: string;\n  woonplaats: string;\n}\nexport type AdresErrors = Partial<Record<keyof AdresValue, string>>;\n\n/** Organism: the editable address block (straat / postcode / woonplaats), grouped\n    in a fieldset/legend. Pure & presentational — values in via `value`, errors in\n    via `errors`, every keystroke out via `fieldChange`. No store, no services, no\n    internal state; the container owns the Model and decides what a change means\n    (registratie-wizard dispatches SetField; change-request-form sets its props).\n    Composes the form-field molecule (×3) so labels/error wiring stay consistent. */\n@Component({\n  selector: 'app-address-fields',\n  imports: [FormsModule, FormFieldComponent, TextInputComponent],\n  styles: [`\n    fieldset{border:0;margin:0;padding:0;min-inline-size:0}\n    legend{padding:0;font-weight:var(--rhc-text-font-weight-semi-bold);margin-block-end:var(--rhc-space-max-md)}\n  `],\n  template: `\n    <fieldset>\n      <legend>{{ legend() }}</legend>\n      <app-form-field i18n-label=\"@@address.straat\" label=\"Straat en huisnummer\" [fieldId]=\"idPrefix() + '-straat'\" required [error]=\"errors().straat\">\n        <app-text-input [inputId]=\"idPrefix() + '-straat'\" [invalid]=\"!!errors().straat\"\n          [ngModel]=\"value().straat\" (ngModelChange)=\"fieldChange.emit({ key: 'straat', value: $event })\"\n          name=\"straat\" [ngModelOptions]=\"{ standalone: true }\" />\n      </app-form-field>\n      <app-form-field i18n-label=\"@@address.postcode\" label=\"Postcode\" [fieldId]=\"idPrefix() + '-postcode'\" required [error]=\"errors().postcode\">\n        <app-text-input [inputId]=\"idPrefix() + '-postcode'\" [invalid]=\"!!errors().postcode\"\n          [ngModel]=\"value().postcode\" (ngModelChange)=\"fieldChange.emit({ key: 'postcode', value: $event })\"\n          name=\"postcode\" i18n-placeholder=\"@@address.postcodePlaceholder\" placeholder=\"1234 AB\" [ngModelOptions]=\"{ standalone: true }\" />\n      </app-form-field>\n      <app-form-field i18n-label=\"@@address.woonplaats\" label=\"Woonplaats\" [fieldId]=\"idPrefix() + '-woonplaats'\" required [error]=\"errors().woonplaats\">\n        <app-text-input [inputId]=\"idPrefix() + '-woonplaats'\" [invalid]=\"!!errors().woonplaats\"\n          [ngModel]=\"value().woonplaats\" (ngModelChange)=\"fieldChange.emit({ key: 'woonplaats', value: $event })\"\n          name=\"woonplaats\" [ngModelOptions]=\"{ standalone: true }\" />\n      </app-form-field>\n    </fieldset>\n  `,\n})\nexport class AddressFieldsComponent {\n  value = input.required<AdresValue>();\n  errors = input<AdresErrors>({});\n  /** Prefix for field ids/labels — keeps them unique if two blocks ever co-exist. */\n  idPrefix = input('adres');\n  legend = input($localize`:@@address.legend:Adres`);\n  fieldChange = output<{ key: keyof AdresValue; value: string }>();\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    fieldset{border:0;margin:0;padding:0;min-inline-size:0}\n    legend{padding:0;font-weight:var(--rhc-text-font-weight-semi-bold);margin-block-end:var(--rhc-space-max-md)}\n  \n",
            "extends": []
        },
        {
            "name": "AlertComponent",
            "id": "component-AlertComponent-5448a9297858e708e40a6b5c6a2e1db849e5e54cce2bf2f6344d7dfe3106fdeacafb818ea6b4e48270dcc9ad5b543fbd554b0435cccb3c5327f726b07cead088",
            "file": "src/app/shared/ui/alert/alert.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-alert",
            "styleUrls": [],
            "styles": [
                ".feedback>div{flex:1 1 auto;min-width:0}"
            ],
            "template": "<div\n  class=\"feedback\"\n  [class.feedback-info]=\"type() === 'info'\"\n  [class.feedback-success]=\"type() === 'ok'\"\n  [class.feedback-warning]=\"type() === 'warning'\"\n  [class.feedback-error]=\"type() === 'error'\"\n  role=\"status\"\n  aria-atomic=\"true\">\n  <span class=\"icon\"><span class=\"visually-hidden\">{{ iconLabels[type()] }}</span></span>\n  <div><ng-content /></div>\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "type",
                    "defaultValue": "'info'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AlertType",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 35,
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "iconLabels",
                    "defaultValue": "ICON_LABELS",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 36,
                    "modifierKind": [
                        124,
                        148
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Atom: alert/message banner — the CIBG Huisstijl &quot;melding&quot;\n(designsystem.cibg.nl/componenten/meldingen). Thin wrapper over the vendored\n<code>.feedback feedback-*</code> classes: the design system owns surface + icon; we add\nonly the icon&#39;s a11y label and a content wrapper (<code>.feedback</code> is a flex row).</p>\n",
            "rawdescription": "\nAtom: alert/message banner — the CIBG Huisstijl \"melding\"\n(designsystem.cibg.nl/componenten/meldingen). Thin wrapper over the vendored\n`.feedback feedback-*` classes: the design system owns surface + icon; we add\nonly the icon's a11y label and a content wrapper (`.feedback` is a flex row).",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\n\ntype AlertType = 'info' | 'ok' | 'warning' | 'error';\n\n// visually-hidden alternative for the status icon (CIBG a11y requirement).\nconst ICON_LABELS: Record<AlertType, string> = {\n  info: $localize`:@@alert.icon.info:Informatie`,\n  ok: $localize`:@@alert.icon.ok:Gelukt`,\n  warning: $localize`:@@alert.icon.warning:Waarschuwing`,\n  error: $localize`:@@alert.icon.error:Foutmelding`,\n};\n\n/** Atom: alert/message banner — the CIBG Huisstijl \"melding\"\n    (designsystem.cibg.nl/componenten/meldingen). Thin wrapper over the vendored\n    `.feedback feedback-*` classes: the design system owns surface + icon; we add\n    only the icon's a11y label and a content wrapper (`.feedback` is a flex row). */\n@Component({\n  selector: 'app-alert',\n  styles: [`.feedback>div{flex:1 1 auto;min-width:0}`],\n  template: `\n    <div\n      class=\"feedback\"\n      [class.feedback-info]=\"type() === 'info'\"\n      [class.feedback-success]=\"type() === 'ok'\"\n      [class.feedback-warning]=\"type() === 'warning'\"\n      [class.feedback-error]=\"type() === 'error'\"\n      role=\"status\"\n      aria-atomic=\"true\">\n      <span class=\"icon\"><span class=\"visually-hidden\">{{ iconLabels[type()] }}</span></span>\n      <div><ng-content /></div>\n    </div>\n  `,\n})\nexport class AlertComponent {\n  type = input<AlertType>('info');\n  protected readonly iconLabels = ICON_LABELS;\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": ".feedback>div{flex:1 1 auto;min-width:0}\n",
            "extends": []
        },
        {
            "name": "App",
            "id": "component-App-a5889755e6aaa6ebd2f471f1253c27e411d38a42361e18619621ef0e6c5a91de3cf6ba4ace13bbe1756691f1f5e80728717fd18aab2cef50180bd579fa218a6d",
            "file": "src/app/app.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-root",
            "styleUrls": [],
            "styles": [],
            "template": "<router-outlet />",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "RouterOutlet"
                }
            ],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n  selector: 'app-root',\n  imports: [RouterOutlet],\n  template: '<router-outlet />',\n})\nexport class App {}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "ApplicationLinkComponent",
            "id": "component-ApplicationLinkComponent-1896ed15a3724a6287cec05699d7af988fa32000e53d11c4d315a06410c896ce752bf13dccd48f7735085bd6a728a0219e7f2f925252d36b55897efdc0f51e8b",
            "file": "src/app/shared/ui/application-link/application-link.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-application-link",
            "styleUrls": [],
            "styles": [
                ":host{display:contents}"
            ],
            "template": "<li>\n  @if (to()) {\n    <a class=\"application\" [routerLink]=\"to()\"><ng-container [ngTemplateOutlet]=\"body\" /></a>\n  } @else if (clickable()) {\n    <a href=\"#\" class=\"application\" (click)=\"onActivate($event)\"><ng-container [ngTemplateOutlet]=\"body\" /></a>\n  } @else {\n    <div><ng-container [ngTemplateOutlet]=\"body\" /></div>\n  }\n  <ng-content select=\"[applicationActions]\" />\n</li>\n<ng-template #body>\n  <h3 class=\"application-title\">{{ heading() }}</h3>\n  @if (subtitle()) { <div class=\"subtitle\">{{ subtitle() }}</div> }\n  @if (status()) { <div class=\"status\">{{ status() }}</div> }\n  @if (cta()) { <div class=\"cta\">{{ cta() }}</div> }\n</ng-template>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "clickable",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Set when the row navigates imperatively (e.g. resume with query params) — the\nrow still renders as a clickable <code>&lt;a&gt;</code>, but <code>activate</code> decides what happens.</p>\n",
                    "line": 45,
                    "rawdescription": "\nSet when the row navigates imperatively (e.g. resume with query params) — the\nrow still renders as a clickable `<a>`, but `activate` decides what happens.",
                    "required": false
                },
                {
                    "name": "cta",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 40,
                    "required": false
                },
                {
                    "name": "heading",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 37,
                    "required": true
                },
                {
                    "name": "status",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 39,
                    "required": false
                },
                {
                    "name": "subtitle",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 38,
                    "required": false
                },
                {
                    "name": "to",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Set for a plain routerLink navigation (e.g. the &quot;Wat wilt u doen?&quot; actions).</p>\n",
                    "line": 42,
                    "rawdescription": "\nSet for a plain routerLink navigation (e.g. the \"Wat wilt u doen?\" actions).",
                    "required": false
                }
            ],
            "outputsClass": [
                {
                    "name": "activate",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 46,
                    "required": false
                }
            ],
            "propertiesClass": [],
            "methodsClass": [
                {
                    "name": "onActivate",
                    "args": [
                        {
                            "name": "ev",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 48,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "ev",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "RouterLink"
                },
                {
                    "name": "NgTemplateOutlet"
                }
            ],
            "description": "<p>Molecule: one row in a CIBG Huisstijl &quot;aanvragen&quot; list — <code>&lt;li&gt;&lt;a class=&quot;application&quot;&gt;</code>\nwith a title, optional subtitle/status/cta (see application-list.component.ts).\nRenders a plain (non-interactive) row when there&#39;s nothing to navigate to — the\nchevron/hover styling only applies to the <code>&lt;a&gt;</code>. A <code>[applicationActions]</code> slot\nprojects a sibling action (e.g. &quot;Annuleren&quot;) after the anchor — a button can&#39;t\nnest inside the anchor itself.</p>\n",
            "rawdescription": "\nMolecule: one row in a CIBG Huisstijl \"aanvragen\" list — `<li><a class=\"application\">`\nwith a title, optional subtitle/status/cta (see application-list.component.ts).\nRenders a plain (non-interactive) row when there's nothing to navigate to — the\nchevron/hover styling only applies to the `<a>`. A `[applicationActions]` slot\nprojects a sibling action (e.g. \"Annuleren\") after the anchor — a button can't\nnest inside the anchor itself.",
            "type": "component",
            "sourceCode": "import { Component, input, output } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { RouterLink } from '@angular/router';\n\n/** Molecule: one row in a CIBG Huisstijl \"aanvragen\" list — `<li><a class=\"application\">`\n    with a title, optional subtitle/status/cta (see application-list.component.ts).\n    Renders a plain (non-interactive) row when there's nothing to navigate to — the\n    chevron/hover styling only applies to the `<a>`. A `[applicationActions]` slot\n    projects a sibling action (e.g. \"Annuleren\") after the anchor — a button can't\n    nest inside the anchor itself. */\n@Component({\n  selector: 'app-application-link',\n  imports: [RouterLink, NgTemplateOutlet],\n  // display:contents so the <li> becomes a real DOM/accessibility-tree child of the\n  // parent <ul> — a wrapper host between them can break list semantics for AT.\n  styles: [`:host{display:contents}`],\n  template: `\n    <li>\n      @if (to()) {\n        <a class=\"application\" [routerLink]=\"to()\"><ng-container [ngTemplateOutlet]=\"body\" /></a>\n      } @else if (clickable()) {\n        <a href=\"#\" class=\"application\" (click)=\"onActivate($event)\"><ng-container [ngTemplateOutlet]=\"body\" /></a>\n      } @else {\n        <div><ng-container [ngTemplateOutlet]=\"body\" /></div>\n      }\n      <ng-content select=\"[applicationActions]\" />\n    </li>\n    <ng-template #body>\n      <h3 class=\"application-title\">{{ heading() }}</h3>\n      @if (subtitle()) { <div class=\"subtitle\">{{ subtitle() }}</div> }\n      @if (status()) { <div class=\"status\">{{ status() }}</div> }\n      @if (cta()) { <div class=\"cta\">{{ cta() }}</div> }\n    </ng-template>\n  `,\n})\nexport class ApplicationLinkComponent {\n  heading = input.required<string>();\n  subtitle = input('');\n  status = input('');\n  cta = input('');\n  /** Set for a plain routerLink navigation (e.g. the \"Wat wilt u doen?\" actions). */\n  to = input('');\n  /** Set when the row navigates imperatively (e.g. resume with query params) — the\n      row still renders as a clickable `<a>`, but `activate` decides what happens. */\n  clickable = input(false);\n  activate = output<void>();\n\n  protected onActivate(ev: Event) {\n    ev.preventDefault(); // fragment href resolves against <base href>, not the route\n    this.activate.emit();\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": ":host{display:contents}\n",
            "extends": []
        },
        {
            "name": "ApplicationListComponent",
            "id": "component-ApplicationListComponent-c936f9f09bbef08cc0205254ee60d0f5f9dfdb1170391a411b69025c5d56dff6145c8a509b42d4655c11a6058107ce926506335062acecf582a10ba3789c73ad",
            "file": "src/app/shared/ui/application-list/application-list.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-application-list",
            "styleUrls": [],
            "styles": [],
            "template": "<div class=\"dashboard-block applications\">\n  <ul class=\"list-unstyled\">\n    <ng-content />\n  </ul>\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Molecule: wraps <code>&lt;app-application-link&gt;</code> rows in the CIBG Huisstijl &quot;aanvragen&quot;\ndashboard block (<code>.dashboard-block.applications</code>) — see\ndesignsystem.cibg.nl/componenten/aanvragen. Used for both the &quot;Mijn aanvragen&quot;\nlist and the &quot;Wat wilt u doen?&quot; action list on the dashboard.</p>\n",
            "rawdescription": "\nMolecule: wraps `<app-application-link>` rows in the CIBG Huisstijl \"aanvragen\"\ndashboard block (`.dashboard-block.applications`) — see\ndesignsystem.cibg.nl/componenten/aanvragen. Used for both the \"Mijn aanvragen\"\nlist and the \"Wat wilt u doen?\" action list on the dashboard.",
            "type": "component",
            "sourceCode": "import { Component } from '@angular/core';\n\n/** Molecule: wraps `<app-application-link>` rows in the CIBG Huisstijl \"aanvragen\"\n    dashboard block (`.dashboard-block.applications`) — see\n    designsystem.cibg.nl/componenten/aanvragen. Used for both the \"Mijn aanvragen\"\n    list and the \"Wat wilt u doen?\" action list on the dashboard. */\n@Component({\n  selector: 'app-application-list',\n  template: `\n    <div class=\"dashboard-block applications\">\n      <ul class=\"list-unstyled\">\n        <ng-content />\n      </ul>\n    </div>\n  `,\n})\nexport class ApplicationListComponent {}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "AsyncComponent",
            "id": "component-AsyncComponent-30c385334293d4c0ab2ad3a6dbd4ec3f386d2edcd2b4020dcb7eb85f7790ee7a97544620fa4f3cd56c9ec5c9b51db5248a4dd0c4e666b4f9b6a2c8ede163f096",
            "file": "src/app/shared/ui/async/async.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-async",
            "styleUrls": [],
            "styles": [],
            "template": "<div aria-live=\"polite\" [attr.aria-busy]=\"rd().tag === 'Loading' ? 'true' : null\">\n@switch (rd().tag) {\n  @case ('Loading') {\n    @if (loadingTpl()) { <ng-container [ngTemplateOutlet]=\"loadingTpl()!.tpl\" /> }\n    @else { <app-spinner /> }\n  }\n  @case ('Failure') {\n    @if (errorTpl()) {\n      <ng-container [ngTemplateOutlet]=\"errorTpl()!.tpl\"\n        [ngTemplateOutletContext]=\"{ $implicit: error(), retry: retry }\" />\n    } @else {\n      <app-alert type=\"error\">{{ errorText() }}</app-alert>\n      <div style=\"margin-top:1rem\">\n        <app-button variant=\"secondary\" (click)=\"retry()\">{{ retryText() }}</app-button>\n      </div>\n    }\n  }\n  @case ('Empty') {\n    @if (emptyTpl()) { <ng-container [ngTemplateOutlet]=\"emptyTpl()!.tpl\" /> }\n    @else { <p>{{ emptyText() }}</p> }\n  }\n  @case ('Success') {\n    <ng-container [ngTemplateOutlet]=\"loadedTpl().tpl\"\n      [ngTemplateOutletContext]=\"{ $implicit: value() }\" />\n  }\n}\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "data",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RemoteData<Error | undefined, T>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 72,
                    "required": false
                },
                {
                    "name": "emptyText",
                    "defaultValue": "$localize`:@@async.empty:Geen gegevens gevonden.`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 79,
                    "required": false
                },
                {
                    "name": "errorText",
                    "defaultValue": "$localize`:@@async.error:Er ging iets mis bij het laden van de gegevens.`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 77,
                    "required": false
                },
                {
                    "name": "isEmpty",
                    "defaultValue": "() => false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "(v: T) => boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 73,
                    "required": false
                },
                {
                    "name": "resource",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Resource<T>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 71,
                    "required": false
                },
                {
                    "name": "retryText",
                    "defaultValue": "$localize`:@@async.retry:Opnieuw proberen`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 78,
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "emptyTpl",
                    "defaultValue": "contentChild(AsyncEmptyDirective)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 83
                },
                {
                    "name": "error",
                    "defaultValue": "computed(() =>\n    foldRemote(this.rd(), { loading: () => undefined, empty: () => undefined, failure: (e) => e, success: () => undefined }),\n  )",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 99,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "errorTpl",
                    "defaultValue": "contentChild(AsyncErrorDirective)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 84
                },
                {
                    "name": "loadedTpl",
                    "defaultValue": "contentChild.required(AsyncLoadedDirective)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 81
                },
                {
                    "name": "loadingTpl",
                    "defaultValue": "contentChild(AsyncLoadingDirective)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 82
                },
                {
                    "name": "rd",
                    "defaultValue": "computed<RemoteData<Error | undefined, T>>(() => {\n    const data = this.data();\n    if (data) return data;\n    const r = this.resource();\n    return r ? fromResource(r, this.isEmpty()) : { tag: 'Loading' };\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 87,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "retry",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 103
                },
                {
                    "name": "value",
                    "defaultValue": "computed(() =>\n    foldRemote(this.rd(), { loading: () => undefined, empty: () => undefined, failure: () => undefined, success: (v) => v }),\n  )",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 96,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "NgTemplateOutlet"
                },
                {
                    "name": "SpinnerComponent",
                    "type": "component"
                },
                {
                    "name": "AlertComponent",
                    "type": "component"
                },
                {
                    "name": "ButtonComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Renders exactly ONE of loading / empty / error / loaded for a signal-based\nresource (e.g. httpResource). Built on a RemoteData tagged union (see\ncore/remote-data.ts), so the states are mutually exclusive by construction —\nthe UI can never show two at once (&quot;impossible states&quot;). Unprovided slots\nfall back to sensible defaults.</p>\n",
            "rawdescription": "\n\nRenders exactly ONE of loading / empty / error / loaded for a signal-based\nresource (e.g. httpResource). Built on a RemoteData tagged union (see\ncore/remote-data.ts), so the states are mutually exclusive by construction —\nthe UI can never show two at once (\"impossible states\"). Unprovided slots\nfall back to sensible defaults.\n",
            "type": "component",
            "sourceCode": "import { Component, Directive, TemplateRef, computed, contentChild, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport type { Resource } from '@angular/core';\nimport { SpinnerComponent } from '@shared/ui/spinner/spinner.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { RemoteData, fromResource, foldRemote } from '@shared/application/remote-data';\n\n/* Slot markers. Put on <ng-template> children of <app-async>. */\n@Directive({ selector: '[appAsyncLoaded]' })\nexport class AsyncLoadedDirective {\n  constructor(public tpl: TemplateRef<{ $implicit: unknown }>) {}\n}\n@Directive({ selector: '[appAsyncLoading]' })\nexport class AsyncLoadingDirective {\n  constructor(public tpl: TemplateRef<unknown>) {}\n}\n@Directive({ selector: '[appAsyncEmpty]' })\nexport class AsyncEmptyDirective {\n  constructor(public tpl: TemplateRef<unknown>) {}\n}\n@Directive({ selector: '[appAsyncError]' })\nexport class AsyncErrorDirective {\n  constructor(public tpl: TemplateRef<{ $implicit: Error | undefined; retry: () => void }>) {}\n}\n\n/**\n * Renders exactly ONE of loading / empty / error / loaded for a signal-based\n * resource (e.g. httpResource). Built on a RemoteData tagged union (see\n * core/remote-data.ts), so the states are mutually exclusive by construction —\n * the UI can never show two at once (\"impossible states\"). Unprovided slots\n * fall back to sensible defaults.\n */\n@Component({\n  selector: 'app-async',\n  imports: [NgTemplateOutlet, SpinnerComponent, AlertComponent, ButtonComponent],\n  template: `\n    <div aria-live=\"polite\" [attr.aria-busy]=\"rd().tag === 'Loading' ? 'true' : null\">\n    @switch (rd().tag) {\n      @case ('Loading') {\n        @if (loadingTpl()) { <ng-container [ngTemplateOutlet]=\"loadingTpl()!.tpl\" /> }\n        @else { <app-spinner /> }\n      }\n      @case ('Failure') {\n        @if (errorTpl()) {\n          <ng-container [ngTemplateOutlet]=\"errorTpl()!.tpl\"\n            [ngTemplateOutletContext]=\"{ $implicit: error(), retry: retry }\" />\n        } @else {\n          <app-alert type=\"error\">{{ errorText() }}</app-alert>\n          <div style=\"margin-top:1rem\">\n            <app-button variant=\"secondary\" (click)=\"retry()\">{{ retryText() }}</app-button>\n          </div>\n        }\n      }\n      @case ('Empty') {\n        @if (emptyTpl()) { <ng-container [ngTemplateOutlet]=\"emptyTpl()!.tpl\" /> }\n        @else { <p>{{ emptyText() }}</p> }\n      }\n      @case ('Success') {\n        <ng-container [ngTemplateOutlet]=\"loadedTpl().tpl\"\n          [ngTemplateOutletContext]=\"{ $implicit: value() }\" />\n      }\n    }\n    </div>\n  `,\n})\nexport class AsyncComponent<T> {\n  // Two ways to feed this component:\n  //  [resource] — a raw httpResource (the common case), or\n  //  [data]     — an already-combined RemoteData (e.g. from a store via map2).\n  resource = input<Resource<T>>();\n  data = input<RemoteData<Error | undefined, T>>();\n  isEmpty = input<(v: T) => boolean>(() => false);\n\n  // Shared/English component: copy lives behind language-agnostic inputs. Defaults are\n  // localizable via $localize (source = default locale, currently nl); callers may override.\n  errorText = input($localize`:@@async.error:Er ging iets mis bij het laden van de gegevens.`);\n  retryText = input($localize`:@@async.retry:Opnieuw proberen`);\n  emptyText = input($localize`:@@async.empty:Geen gegevens gevonden.`);\n\n  loadedTpl = contentChild.required(AsyncLoadedDirective);\n  loadingTpl = contentChild(AsyncLoadingDirective);\n  emptyTpl = contentChild(AsyncEmptyDirective);\n  errorTpl = contentChild(AsyncErrorDirective);\n\n  // Single source of truth: the supplied RemoteData, or the resource projected into one.\n  protected rd = computed<RemoteData<Error | undefined, T>>(() => {\n    const data = this.data();\n    if (data) return data;\n    const r = this.resource();\n    return r ? fromResource(r, this.isEmpty()) : { tag: 'Loading' };\n  });\n\n  // value/error are pulled out via the exhaustive fold — only Success carries a\n  // value, only Failure carries an error, so these can't lie.\n  protected value = computed(() =>\n    foldRemote(this.rd(), { loading: () => undefined, empty: () => undefined, failure: () => undefined, success: (v) => v }),\n  );\n  protected error = computed(() =>\n    foldRemote(this.rd(), { loading: () => undefined, empty: () => undefined, failure: (e) => e, success: () => undefined }),\n  );\n\n  retry = () => {\n    const r = this.resource();\n    if (r && 'reload' in r && typeof (r as { reload?: unknown }).reload === 'function') {\n      (r as { reload: () => void }).reload();\n    }\n  };\n}\n\n/** Convenience: import this array to get the wrapper + all slot directives. */\nexport const ASYNC = [\n  AsyncComponent, AsyncLoadedDirective, AsyncLoadingDirective,\n  AsyncEmptyDirective, AsyncErrorDirective,\n] as const;\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "BreadcrumbComponent",
            "id": "component-BreadcrumbComponent-ca2d9e2ecbcf92ee4c86cc2f0d2eafa6be15870319719a9c4a3c7ad14597a383bc488f7503bf0e608f37b57ca8f2d7b790dac822e4908bdff4324cb617e8ce98",
            "file": "src/app/shared/layout/breadcrumb/breadcrumb.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-breadcrumb",
            "styleUrls": [],
            "styles": [
                "nav{background:none}"
            ],
            "template": "<nav i18n-aria-label=\"@@breadcrumb.aria\" aria-label=\"Kruimelpad\">\n  <span class=\"visually-hidden\" i18n=\"@@breadcrumb.hier\">U bevindt zich hier:</span>\n  @for (item of items(); track item.label; let last = $last) {\n    @if (item.link && !last) {\n      <a [routerLink]=\"item.link\">{{ item.label }}</a>\n    } @else {\n      <span aria-current=\"page\">{{ item.label }}</span>\n    }\n  }\n</nav>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "items",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "BreadcrumbItem[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 34,
                    "required": true
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "RouterLink"
                }
            ],
            "description": "<p>Chrome: breadcrumb navigation, styled for the CIBG titlebar (<code>.titlebar .title</code>) —\nplain links with a chevron <code>::after</code> from the CIBG Icons font, current page as an\nunlinked, bold span. Domain-free — the caller supplies the trail.</p>\n",
            "rawdescription": "\nChrome: breadcrumb navigation, styled for the CIBG titlebar (`.titlebar .title`) —\nplain links with a chevron `::after` from the CIBG Icons font, current page as an\nunlinked, bold span. Domain-free — the caller supplies the trail.",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nexport interface BreadcrumbItem {\n  label: string;\n  link?: string; // omit on the current (last) page\n}\n\n/** Chrome: breadcrumb navigation, styled for the CIBG titlebar (`.titlebar .title`) —\n    plain links with a chevron `::after` from the CIBG Icons font, current page as an\n    unlinked, bold span. Domain-free — the caller supplies the trail. */\n@Component({\n  selector: 'app-breadcrumb',\n  imports: [RouterLink],\n  // CIBG's global \"header nav\" background rule matches ANY nav inside a <header>\n  // — including this one, wherever it's mounted. Override it so the breadcrumb\n  // never carries its own background (it should show whatever's behind it, e.g.\n  // the titlebar's robijn fill).\n  styles: [`nav{background:none}`],\n  template: `\n    <nav i18n-aria-label=\"@@breadcrumb.aria\" aria-label=\"Kruimelpad\">\n      <span class=\"visually-hidden\" i18n=\"@@breadcrumb.hier\">U bevindt zich hier:</span>\n      @for (item of items(); track item.label; let last = $last) {\n        @if (item.link && !last) {\n          <a [routerLink]=\"item.link\">{{ item.label }}</a>\n        } @else {\n          <span aria-current=\"page\">{{ item.label }}</span>\n        }\n      }\n    </nav>\n  `,\n})\nexport class BreadcrumbComponent {\n  items = input.required<BreadcrumbItem[]>();\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "nav{background:none}\n",
            "extends": []
        },
        {
            "name": "BriefPage",
            "id": "component-BriefPage-732e4cd9651360a8c911888208bba747a8fb03e96e44b41a403222a9af2dda363dbe1f9939f1d38eb6c3705cbc41f422c4fd9da09124fd8735b33ecf8905f2af",
            "file": "src/app/brief/ui/brief.page.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-brief-page",
            "styleUrls": [],
            "styles": [
                "\n    .brief-toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--rhc-space-max-md);margin-block-end:var(--rhc-space-max-lg)}\n    .save{color:var(--rhc-color-foreground-subtle);font-size:0.9em}\n  "
            ],
            "template": "<app-page-shell\n  [heading]=\"heading\"\n  [intro]=\"intro\"\n  backLink=\"/dashboard\">\n  @if (lastError(); as err) { <app-alert type=\"error\">{{ err }}</app-alert> }\n\n  @switch (model().tag) {\n    @case ('loading') { <app-spinner /> }\n    @case ('failed') {\n      <app-alert type=\"error\">{{ failedText }}</app-alert>\n      <app-button variant=\"secondary\" (click)=\"reload()\">{{ retryText }}</app-button>\n    }\n    @case ('loaded') {\n      <div class=\"brief-toolbar\">\n        <span class=\"save\" role=\"status\" aria-live=\"polite\">{{ saveText() }}</span>\n        <app-button variant=\"subtle\" [disabled]=\"store.busy()\" (click)=\"resetDemo()\">{{ resetLabel }}</app-button>\n      </div>\n      <app-letter-composer\n        [brief]=\"brief()!\"\n        [availablePassages]=\"availablePassages()\"\n        [diagnostics]=\"store.diagnostics()\"\n        [editable]=\"store.editable()\"\n        [role]=\"store.role\"\n        [canSubmit]=\"store.canSubmit()\"\n        [busy]=\"store.busy()\"\n        (edit)=\"store.edit($event)\"\n        (submit)=\"store.submit()\"\n        (approve)=\"store.approve()\"\n        (reject)=\"store.reject($event)\"\n        (send)=\"store.send()\" />\n    }\n  }\n</app-page-shell>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "failedText",
                    "defaultValue": "$localize`:@@brief.page.failed:De brief kon niet worden geladen.`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 62,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "heading",
                    "defaultValue": "$localize`:@@brief.page.heading:Brief opstellen`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 60,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "intro",
                    "defaultValue": "$localize`:@@brief.page.intro:Stel de brief aan de zorgverlener samen uit standaardteksten en vrije tekst.`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 61,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "lastError",
                    "defaultValue": "this.store.lastError",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 58,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "model",
                    "defaultValue": "this.store.model",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 57,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "resetLabel",
                    "defaultValue": "$localize`:@@brief.page.reset:Opnieuw beginnen (demo)`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 64,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "retryText",
                    "defaultValue": "$localize`:@@brief.page.retry:Opnieuw proberen`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 63,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "savedText",
                    "defaultValue": "$localize`:@@brief.page.saved:Concept opgeslagen`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 67,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "saveErrorText",
                    "defaultValue": "$localize`:@@brief.page.saveError:Opslaan mislukt`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 68,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "saveText",
                    "defaultValue": "computed(() => {\n    switch (this.store.saveState()) {\n      case 'saving': return this.savingText;\n      case 'saved': return this.savedText;\n      case 'error': return this.saveErrorText;\n      default: return '';\n    }\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Debounced-save state, surfaced in a polite live region.</p>\n",
                    "line": 71,
                    "rawdescription": "\nDebounced-save state, surfaced in a polite live region.",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "savingText",
                    "defaultValue": "$localize`:@@brief.page.saving:Concept opslaan…`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 66,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "store",
                    "defaultValue": "inject(BriefStore)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 56,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "availablePassages",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 93,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "brief",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 89,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "reload",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 98,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "resetDemo",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 84,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "PageShellComponent",
                    "type": "component"
                },
                {
                    "name": "SpinnerComponent",
                    "type": "component"
                },
                {
                    "name": "AlertComponent",
                    "type": "component"
                },
                {
                    "name": "ButtonComponent",
                    "type": "component"
                },
                {
                    "name": "LetterComposerComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Page: thin container. Injects the root store, kicks off the load, and passes its\nderived read-model to the composer. Business/UI logic lives below in pure pieces;\nthis just wires signals to the organism and events back to store commands.</p>\n",
            "rawdescription": "\nPage: thin container. Injects the root store, kicks off the load, and passes its\nderived read-model to the composer. Business/UI logic lives below in pure pieces;\nthis just wires signals to the organism and events back to store commands.",
            "type": "component",
            "sourceCode": "import { Component, computed, inject } from '@angular/core';\nimport { PageShellComponent } from '@shared/layout/page-shell/page-shell.component';\nimport { SpinnerComponent } from '@shared/ui/spinner/spinner.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { BriefStore } from '@brief/application/brief.store';\nimport { LetterComposerComponent } from '@brief/ui/letter-composer/letter-composer.component';\n\n/** Page: thin container. Injects the root store, kicks off the load, and passes its\n    derived read-model to the composer. Business/UI logic lives below in pure pieces;\n    this just wires signals to the organism and events back to store commands. */\n@Component({\n  selector: 'app-brief-page',\n  imports: [PageShellComponent, SpinnerComponent, AlertComponent, ButtonComponent, LetterComposerComponent],\n  styles: [`\n    .brief-toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--rhc-space-max-md);margin-block-end:var(--rhc-space-max-lg)}\n    .save{color:var(--rhc-color-foreground-subtle);font-size:0.9em}\n  `],\n  template: `\n    <app-page-shell\n      [heading]=\"heading\"\n      [intro]=\"intro\"\n      backLink=\"/dashboard\">\n      @if (lastError(); as err) { <app-alert type=\"error\">{{ err }}</app-alert> }\n\n      @switch (model().tag) {\n        @case ('loading') { <app-spinner /> }\n        @case ('failed') {\n          <app-alert type=\"error\">{{ failedText }}</app-alert>\n          <app-button variant=\"secondary\" (click)=\"reload()\">{{ retryText }}</app-button>\n        }\n        @case ('loaded') {\n          <div class=\"brief-toolbar\">\n            <span class=\"save\" role=\"status\" aria-live=\"polite\">{{ saveText() }}</span>\n            <app-button variant=\"subtle\" [disabled]=\"store.busy()\" (click)=\"resetDemo()\">{{ resetLabel }}</app-button>\n          </div>\n          <app-letter-composer\n            [brief]=\"brief()!\"\n            [availablePassages]=\"availablePassages()\"\n            [diagnostics]=\"store.diagnostics()\"\n            [editable]=\"store.editable()\"\n            [role]=\"store.role\"\n            [canSubmit]=\"store.canSubmit()\"\n            [busy]=\"store.busy()\"\n            (edit)=\"store.edit($event)\"\n            (submit)=\"store.submit()\"\n            (approve)=\"store.approve()\"\n            (reject)=\"store.reject($event)\"\n            (send)=\"store.send()\" />\n        }\n      }\n    </app-page-shell>\n  `,\n})\nexport class BriefPage {\n  protected store = inject(BriefStore);\n  protected model = this.store.model;\n  protected lastError = this.store.lastError;\n\n  protected heading = $localize`:@@brief.page.heading:Brief opstellen`;\n  protected intro = $localize`:@@brief.page.intro:Stel de brief aan de zorgverlener samen uit standaardteksten en vrije tekst.`;\n  protected failedText = $localize`:@@brief.page.failed:De brief kon niet worden geladen.`;\n  protected retryText = $localize`:@@brief.page.retry:Opnieuw proberen`;\n  protected resetLabel = $localize`:@@brief.page.reset:Opnieuw beginnen (demo)`;\n\n  private savingText = $localize`:@@brief.page.saving:Concept opslaan…`;\n  private savedText = $localize`:@@brief.page.saved:Concept opgeslagen`;\n  private saveErrorText = $localize`:@@brief.page.saveError:Opslaan mislukt`;\n\n  /** Debounced-save state, surfaced in a polite live region. */\n  protected saveText = computed(() => {\n    switch (this.store.saveState()) {\n      case 'saving': return this.savingText;\n      case 'saved': return this.savedText;\n      case 'error': return this.saveErrorText;\n      default: return '';\n    }\n  });\n\n  constructor() {\n    void this.store.load();\n  }\n\n  protected resetDemo() {\n    void this.store.resetDemo();\n  }\n\n  // Narrow the loaded state for the template.\n  protected brief() {\n    const s = this.model();\n    return s.tag === 'loaded' ? s.brief : null;\n  }\n  protected availablePassages() {\n    const s = this.model();\n    return s.tag === 'loaded' ? s.availablePassages : [];\n  }\n\n  protected reload() {\n    void this.store.load();\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    .brief-toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--rhc-space-max-md);margin-block-end:var(--rhc-space-max-lg)}\n    .save{color:var(--rhc-color-foreground-subtle);font-size:0.9em}\n  \n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 78
            },
            "extends": []
        },
        {
            "name": "ButtonComponent",
            "id": "component-ButtonComponent-454a3abff839bc47ef0bf4820c8b7d1e8129f060dac38d626be3494af80979fec021853a06e89632a741d2bc21af8502c7481311f1e269b45041a34000d140c1",
            "file": "src/app/shared/ui/button/button.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-button",
            "styleUrls": [],
            "styles": [],
            "template": "<button\n  [type]=\"type()\"\n  [disabled]=\"disabled()\"\n  class=\"btn\"\n  [class.btn-primary]=\"variant() === 'primary'\"\n  [class.btn-outline-primary]=\"variant() === 'secondary'\"\n  [class.btn-link]=\"variant() === 'subtle'\"\n  [class.btn-danger]=\"variant() === 'danger'\">\n  <ng-content />\n</button>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "disabled",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 24,
                    "required": false
                },
                {
                    "name": "type",
                    "defaultValue": "'button'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "\"button\" | \"submit\"",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 23,
                    "required": false
                },
                {
                    "name": "variant",
                    "defaultValue": "'primary'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Variant",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22,
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Atom: button. Thin wrapper over the CIBG/Bootstrap button CSS.</p>\n",
            "rawdescription": "\nAtom: button. Thin wrapper over the CIBG/Bootstrap button CSS.",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\n\ntype Variant = 'primary' | 'secondary' | 'subtle' | 'danger';\n\n/** Atom: button. Thin wrapper over the CIBG/Bootstrap button CSS. */\n@Component({\n  selector: 'app-button',\n  template: `\n    <button\n      [type]=\"type()\"\n      [disabled]=\"disabled()\"\n      class=\"btn\"\n      [class.btn-primary]=\"variant() === 'primary'\"\n      [class.btn-outline-primary]=\"variant() === 'secondary'\"\n      [class.btn-link]=\"variant() === 'subtle'\"\n      [class.btn-danger]=\"variant() === 'danger'\">\n      <ng-content />\n    </button>\n  `,\n})\nexport class ButtonComponent {\n  variant = input<Variant>('primary');\n  type = input<'button' | 'submit'>('button');\n  disabled = input(false);\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "CardComponent",
            "id": "component-CardComponent-d11e701289d474cbdcd0f2d0b4569844af01a5509c7466762a25ffc3fc7a4bdb5674e17b41ce1872b26b8fa8454af99a234ed7efdafdf90dc9d9132c92615e5b",
            "file": "src/app/shared/ui/card/card.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-card",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:block;block-size:100%}\n    .app-card{\n      background:var(--rhc-color-wit);\n      border:var(--rhc-border-width-sm) solid var(--rhc-color-border-subtle);\n      border-radius:var(--rhc-border-radius-md);\n      padding:var(--rhc-space-max-xl);\n      block-size:100%;\n      box-sizing:border-box;\n    }\n    .app-card > * + *{margin-block-start:var(--rhc-space-max-md)}\n  "
            ],
            "template": "<section class=\"app-card\">\n  @if (heading()) { <app-heading [level]=\"level()\">{{ heading() }}</app-heading> }\n  <ng-content />\n</section>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "heading",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 31,
                    "required": false
                },
                {
                    "name": "level",
                    "defaultValue": "3",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "1 | 2 | 3 | 4 | 5",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 32,
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "HeadingComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Molecule: a content card. Standardises the repeated card surface (white,\nsubtle border, rounded, padded) so pages compose cards instead of hand-rolling\na hand-rolled card surface. Optional heading; the rest is projected.\nLocal class is .app-card (NOT Bootstrap&#39;s .card, whose padding-on-body layout differs).</p>\n",
            "rawdescription": "\nMolecule: a content card. Standardises the repeated card surface (white,\nsubtle border, rounded, padded) so pages compose cards instead of hand-rolling\na hand-rolled card surface. Optional heading; the rest is projected.\nLocal class is .app-card (NOT Bootstrap's .card, whose padding-on-body layout differs).",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\nimport { HeadingComponent } from '@shared/ui/heading/heading.component';\n\n/** Molecule: a content card. Standardises the repeated card surface (white,\n    subtle border, rounded, padded) so pages compose cards instead of hand-rolling\n    a hand-rolled card surface. Optional heading; the rest is projected.\n    Local class is .app-card (NOT Bootstrap's .card, whose padding-on-body layout differs). */\n@Component({\n  selector: 'app-card',\n  imports: [HeadingComponent],\n  styles: [`\n    :host{display:block;block-size:100%}\n    .app-card{\n      background:var(--rhc-color-wit);\n      border:var(--rhc-border-width-sm) solid var(--rhc-color-border-subtle);\n      border-radius:var(--rhc-border-radius-md);\n      padding:var(--rhc-space-max-xl);\n      block-size:100%;\n      box-sizing:border-box;\n    }\n    .app-card > * + *{margin-block-start:var(--rhc-space-max-md)}\n  `],\n  template: `\n    <section class=\"app-card\">\n      @if (heading()) { <app-heading [level]=\"level()\">{{ heading() }}</app-heading> }\n      <ng-content />\n    </section>\n  `,\n})\nexport class CardComponent {\n  heading = input<string>();\n  level = input<1 | 2 | 3 | 4 | 5>(3);\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:block;block-size:100%}\n    .app-card{\n      background:var(--rhc-color-wit);\n      border:var(--rhc-border-width-sm) solid var(--rhc-color-border-subtle);\n      border-radius:var(--rhc-border-radius-md);\n      padding:var(--rhc-space-max-xl);\n      block-size:100%;\n      box-sizing:border-box;\n    }\n    .app-card > * + *{margin-block-start:var(--rhc-space-max-md)}\n  \n",
            "extends": []
        },
        {
            "name": "ChangeRequestFormComponent",
            "id": "component-ChangeRequestFormComponent-3107a834da8a273b59ee696f400c2421e183946491a8d55a38bc2c085ebe8f69e43290c44de05dd9d20b7f18ab86d4095a68475f62389dcb189dfc8a01f37885",
            "file": "src/app/registratie/ui/change-request-form/change-request-form.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-change-request-form",
            "styleUrls": [],
            "styles": [],
            "template": "@if (state().tag === 'Submitted') {\n  <app-alert type=\"ok\" i18n=\"@@changeRequest.success\">\n    Uw adreswijziging is ontvangen (referentie {{ referentie() }}). U ontvangt binnen 5 werkdagen bericht.\n  </app-alert>\n  <div class=\"app-section\">\n    <app-button variant=\"secondary\" (click)=\"dispatch({ tag: 'Reset' })\" i18n=\"@@changeRequest.nieuwe\">Nieuwe wijziging doorgeven</app-button>\n  </div>\n} @else {\n  <app-heading [level]=\"2\" i18n=\"@@changeRequest.heading\">Adreswijziging doorgeven</app-heading>\n  <form (ngSubmit)=\"onSubmit()\" class=\"form-horizontal app-section\">\n    <div class=\"form-header\">\n      <div class=\"form-action\"><span class=\"meta\" i18n=\"@@form.verplichteVelden\">* verplichte velden</span></div>\n    </div>\n    <app-address-fields\n      idPrefix=\"cr\"\n      [value]=\"adres()\"\n      [errors]=\"errors()\"\n      (fieldChange)=\"dispatch({ tag: 'SetField', key: $event.key, value: $event.value })\" />\n\n    @if (failedError()) {\n      <app-alert type=\"error\"><ng-container i18n=\"@@changeRequest.failed\">Het indienen is niet gelukt:</ng-container> {{ failedError() }}</app-alert>\n    }\n\n    <app-button type=\"submit\" variant=\"primary\" [disabled]=\"state().tag === 'Submitting'\">\n      {{ state().tag === 'Submitting' ? submitBezigLabel : submitLabel }}\n    </app-button>\n  </form>\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "seed",
                    "defaultValue": "initial",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "State",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Optional seed so Storybook / tests can mount any state directly.</p>\n",
                    "line": 60,
                    "rawdescription": "\nOptional seed so Storybook / tests can mount any state directly.",
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "adres",
                    "defaultValue": "computed<AdresValue>(() => {\n    const s = this.state();\n    if (s.tag === 'Editing') return s.draft;\n    if (s.tag === 'Submitting' || s.tag === 'Failed') {\n      return { straat: s.data.straat, postcode: s.data.postcode, woonplaats: s.data.woonplaats };\n    }\n    return { straat: '', postcode: '', woonplaats: '' }; // Submitted shows the success alert, not the fields\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The address shown in the fields — the live draft while editing, the parsed\ndata while submitting/failed (so the user sees what they sent).</p>\n",
                    "line": 75,
                    "rawdescription": "\nThe address shown in the fields — the live draft while editing, the parsed\ndata while submitting/failed (so the user sees what they sent).",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "dispatch",
                    "defaultValue": "this.store.dispatch",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 63,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "editing",
                    "defaultValue": "computed(() => whenTag(this.state(), 'Editing'))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 68,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "errors",
                    "defaultValue": "computed<AdresErrors>(() => this.editing()?.errors ?? {})",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 69,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "failedError",
                    "defaultValue": "computed(() => whenTag(this.state(), 'Failed')?.error ?? '')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 70,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "referentie",
                    "defaultValue": "computed(() => whenTag(this.state(), 'Submitted')?.referentie ?? '')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 71,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "state",
                    "defaultValue": "this.store.model",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 62,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "store",
                    "defaultValue": "createStore<State, Msg>(initial, reduce)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 57,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "submit",
                    "defaultValue": "createSubmitChangeRequest()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 56,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "submitBezigLabel",
                    "defaultValue": "$localize`:@@changeRequest.submitBezig:Bezig met indienen…`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 66,
                    "modifierKind": [
                        124,
                        148
                    ]
                },
                {
                    "name": "submitLabel",
                    "defaultValue": "$localize`:@@changeRequest.submit:Wijziging indienen`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 65,
                    "modifierKind": [
                        124,
                        148
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "onSubmit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 88,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "runIfSubmitting",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 94,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nEffect: when we entered Submitting, call the command, then dispatch the outcome.",
                    "description": "<p>Effect: when we entered Submitting, call the command, then dispatch the outcome.</p>\n",
                    "modifierKind": [
                        123,
                        134
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "FormsModule",
                    "type": "module"
                },
                {
                    "name": "ButtonComponent",
                    "type": "component"
                },
                {
                    "name": "HeadingComponent",
                    "type": "component"
                },
                {
                    "name": "AlertComponent",
                    "type": "component"
                },
                {
                    "name": "AddressFieldsComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Organism: change-request (adreswijziging) form. Uses the SAME idiom as the\nwizards — all state in one signal driven by the pure <code>reduce</code>\n(change-request.machine.ts), submitted via a <code>submit-*</code> command returning\n<code>Result</code>. Renders the shared <code>&lt;app-address-fields&gt;</code>; the server re-validates.</p>\n",
            "rawdescription": "\n\nOrganism: change-request (adreswijziging) form. Uses the SAME idiom as the\nwizards — all state in one signal driven by the pure `reduce`\n(change-request.machine.ts), submitted via a `submit-*` command returning\n`Result`. Renders the shared `<app-address-fields>`; the server re-validates.\n",
            "type": "component",
            "sourceCode": "import { Component, computed, input } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { HeadingComponent } from '@shared/ui/heading/heading.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { AddressFieldsComponent, AdresValue, AdresErrors } from '@registratie/ui/address-fields/address-fields.component';\nimport { createStore } from '@shared/application/store';\nimport { whenTag } from '@shared/kernel/fp';\nimport { State, Msg, initial, reduce } from '@registratie/domain/change-request.machine';\nimport { createSubmitChangeRequest } from '@registratie/application/submit-change-request';\n\n/**\n * Organism: change-request (adreswijziging) form. Uses the SAME idiom as the\n * wizards — all state in one signal driven by the pure `reduce`\n * (change-request.machine.ts), submitted via a `submit-*` command returning\n * `Result`. Renders the shared `<app-address-fields>`; the server re-validates.\n */\n@Component({\n  selector: 'app-change-request-form',\n  imports: [FormsModule, ButtonComponent, HeadingComponent, AlertComponent, AddressFieldsComponent],\n  template: `\n    @if (state().tag === 'Submitted') {\n      <app-alert type=\"ok\" i18n=\"@@changeRequest.success\">\n        Uw adreswijziging is ontvangen (referentie {{ referentie() }}). U ontvangt binnen 5 werkdagen bericht.\n      </app-alert>\n      <div class=\"app-section\">\n        <app-button variant=\"secondary\" (click)=\"dispatch({ tag: 'Reset' })\" i18n=\"@@changeRequest.nieuwe\">Nieuwe wijziging doorgeven</app-button>\n      </div>\n    } @else {\n      <app-heading [level]=\"2\" i18n=\"@@changeRequest.heading\">Adreswijziging doorgeven</app-heading>\n      <form (ngSubmit)=\"onSubmit()\" class=\"form-horizontal app-section\">\n        <div class=\"form-header\">\n          <div class=\"form-action\"><span class=\"meta\" i18n=\"@@form.verplichteVelden\">* verplichte velden</span></div>\n        </div>\n        <app-address-fields\n          idPrefix=\"cr\"\n          [value]=\"adres()\"\n          [errors]=\"errors()\"\n          (fieldChange)=\"dispatch({ tag: 'SetField', key: $event.key, value: $event.value })\" />\n\n        @if (failedError()) {\n          <app-alert type=\"error\"><ng-container i18n=\"@@changeRequest.failed\">Het indienen is niet gelukt:</ng-container> {{ failedError() }}</app-alert>\n        }\n\n        <app-button type=\"submit\" variant=\"primary\" [disabled]=\"state().tag === 'Submitting'\">\n          {{ state().tag === 'Submitting' ? submitBezigLabel : submitLabel }}\n        </app-button>\n      </form>\n    }\n  `,\n})\nexport class ChangeRequestFormComponent {\n  // The submit command owns the ApiClient dependency (via the change-request\n  // adapter); the UI holds only this bound command. Field initializer = injection\n  // context, like createStore below.\n  private submit = createSubmitChangeRequest();\n  private store = createStore<State, Msg>(initial, reduce);\n\n  /** Optional seed so Storybook / tests can mount any state directly. */\n  seed = input<State>(initial);\n\n  readonly state = this.store.model;\n  protected dispatch = this.store.dispatch;\n\n  protected readonly submitLabel = $localize`:@@changeRequest.submit:Wijziging indienen`;\n  protected readonly submitBezigLabel = $localize`:@@changeRequest.submitBezig:Bezig met indienen…`;\n\n  private editing = computed(() => whenTag(this.state(), 'Editing'));\n  protected errors = computed<AdresErrors>(() => this.editing()?.errors ?? {});\n  protected failedError = computed(() => whenTag(this.state(), 'Failed')?.error ?? '');\n  protected referentie = computed(() => whenTag(this.state(), 'Submitted')?.referentie ?? '');\n\n  /** The address shown in the fields — the live draft while editing, the parsed\n      data while submitting/failed (so the user sees what they sent). */\n  protected adres = computed<AdresValue>(() => {\n    const s = this.state();\n    if (s.tag === 'Editing') return s.draft;\n    if (s.tag === 'Submitting' || s.tag === 'Failed') {\n      return { straat: s.data.straat, postcode: s.data.postcode, woonplaats: s.data.woonplaats };\n    }\n    return { straat: '', postcode: '', woonplaats: '' }; // Submitted shows the success alert, not the fields\n  });\n\n  constructor() {\n    queueMicrotask(() => this.dispatch({ tag: 'Seed', state: this.seed() }));\n  }\n\n  onSubmit() {\n    this.dispatch({ tag: 'Submit' });\n    this.runIfSubmitting();\n  }\n\n  /** Effect: when we entered Submitting, call the command, then dispatch the outcome. */\n  private async runIfSubmitting() {\n    const s = this.state();\n    if (s.tag !== 'Submitting') return;\n    const r = await this.submit(s.data);\n    if (r.ok) this.dispatch({ tag: 'SubmitConfirmed', referentie: r.value });\n    else this.dispatch({ tag: 'SubmitFailed', error: r.error });\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 82
            },
            "extends": []
        },
        {
            "name": "CheckboxComponent",
            "id": "component-CheckboxComponent-3156115487fc2d3e418c46151bad6cab0a4eb8ac006946add098f393709f88abff34403ec39c84ec5b395c70adf30d43526a5e1175b9b13f167f60bfb53a8b8c",
            "file": "src/app/shared/ui/checkbox/checkbox.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [
                {
                    "name": ")"
                }
            ],
            "selector": "app-checkbox",
            "styleUrls": [],
            "styles": [],
            "template": "<div class=\"form-check styled\">\n  <input class=\"form-check-input\" type=\"checkbox\" [id]=\"checkboxId()\" [checked]=\"value\" [disabled]=\"disabled\"\n    (change)=\"onToggle($event)\" (blur)=\"onTouched()\" />\n  <label class=\"form-check-label\" [for]=\"checkboxId()\">{{ label() }}</label>\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "checkboxId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 19,
                    "required": false
                },
                {
                    "name": "label",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 20,
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "disabled",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 23
                },
                {
                    "name": "onChange",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 24
                },
                {
                    "name": "onTouched",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "value",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22
                }
            ],
            "methodsClass": [
                {
                    "name": "onToggle",
                    "args": [
                        {
                            "name": "e",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 27,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "e",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "registerOnChange",
                    "args": [
                        {
                            "name": "fn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "v",
                                    "type": "boolean",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ]
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 32,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "fn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "v",
                                    "type": "boolean",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "registerOnTouched",
                    "args": [
                        {
                            "name": "fn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": []
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 33,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "fn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setDisabledState",
                    "args": [
                        {
                            "name": "d",
                            "type": "boolean",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 34,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "d",
                            "type": "boolean",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "writeValue",
                    "args": [
                        {
                            "name": "v",
                            "type": "boolean",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 31,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "v",
                            "type": "boolean",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Atom: a labelled checkbox wired as a form control (ngModel/reactive). Thin\nwrapper over the CIBG Huisstijl <code>.form-check.styled</code> checkbox CSS; native\ninput for full keyboard + screen-reader support.</p>\n",
            "rawdescription": "\nAtom: a labelled checkbox wired as a form control (ngModel/reactive). Thin\nwrapper over the CIBG Huisstijl `.form-check.styled` checkbox CSS; native\ninput for full keyboard + screen-reader support.",
            "type": "component",
            "sourceCode": "import { Component, forwardRef, input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/** Atom: a labelled checkbox wired as a form control (ngModel/reactive). Thin\n    wrapper over the CIBG Huisstijl `.form-check.styled` checkbox CSS; native\n    input for full keyboard + screen-reader support. */\n@Component({\n  selector: 'app-checkbox',\n  template: `\n    <div class=\"form-check styled\">\n      <input class=\"form-check-input\" type=\"checkbox\" [id]=\"checkboxId()\" [checked]=\"value\" [disabled]=\"disabled\"\n        (change)=\"onToggle($event)\" (blur)=\"onTouched()\" />\n      <label class=\"form-check-label\" [for]=\"checkboxId()\">{{ label() }}</label>\n    </div>\n  `,\n  providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CheckboxComponent), multi: true }],\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n  checkboxId = input<string>();\n  label = input('');\n\n  value = false;\n  disabled = false;\n  onChange: (v: boolean) => void = () => {};\n  onTouched: () => void = () => {};\n\n  onToggle(e: Event) {\n    this.value = (e.target as HTMLInputElement).checked;\n    this.onChange(this.value);\n  }\n  writeValue(v: boolean) { this.value = !!v; }\n  registerOnChange(fn: (v: boolean) => void) { this.onChange = fn; }\n  registerOnTouched(fn: () => void) { this.onTouched = fn; }\n  setDisabledState(d: boolean) { this.disabled = d; }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": [],
            "implements": [
                "ControlValueAccessor"
            ]
        },
        {
            "name": "ChoiceLinkComponent",
            "id": "component-ChoiceLinkComponent-dd7c229207ecf78cc74a14239222b6731e710fe8931335a436168ac967b5bcd7b3ec8fd037c62a0b65e0f619ad2c3d89f0e0ad1aad2e731c5f8f5b63672d3112",
            "file": "src/app/shared/ui/choice-link/choice-link.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-choice-link",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:contents}\n    .keuzelijst__link{position:relative}\n    .keuzelijst__link:focus-within{background-color:var(--rhc-color-cool-grey-100);box-shadow:inset 4px 0 0 0 var(--rhc-color-lintblauw-500)}\n    .keuzelijst__link--static::after{content:none}\n    .keuzelijst__link--static:hover{background-color:var(--rhc-color-cool-grey-200);box-shadow:none}\n  "
            ],
            "template": "<li class=\"keuzelijst__list-item\">\n  <div class=\"keuzelijst__link\" [class.keuzelijst__link--static]=\"!to() && !clickable()\">\n    <h3 class=\"keuzelijst__header\">\n      @if (to()) {\n        <a class=\"stretched-link\" [routerLink]=\"to()\">{{ heading() }}</a>\n      } @else if (clickable()) {\n        <a class=\"stretched-link\" href=\"#\" (click)=\"onActivate($event)\">{{ heading() }}</a>\n      } @else {\n        {{ heading() }}\n      }\n    </h3>\n    @if (instructions()) { <p class=\"keuzelijst__instructions\">{{ instructions() }}</p> }\n    <ng-content select=\"[choiceActions]\" />\n  </div>\n</li>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "clickable",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Set when the choice navigates imperatively (e.g. resume with query params) — the\nrow still renders as a clickable card, but <code>activate</code> decides what happens.</p>\n",
                    "line": 56,
                    "rawdescription": "\nSet when the choice navigates imperatively (e.g. resume with query params) — the\nrow still renders as a clickable card, but `activate` decides what happens.",
                    "required": false
                },
                {
                    "name": "heading",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 50,
                    "required": true
                },
                {
                    "name": "instructions",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 51,
                    "required": false
                },
                {
                    "name": "to",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Set for a plain routerLink navigation.</p>\n",
                    "line": 53,
                    "rawdescription": "\nSet for a plain routerLink navigation.",
                    "required": false
                }
            ],
            "outputsClass": [
                {
                    "name": "activate",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 57,
                    "required": false
                }
            ],
            "propertiesClass": [],
            "methodsClass": [
                {
                    "name": "onActivate",
                    "args": [
                        {
                            "name": "ev",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 59,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "ev",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "RouterLink"
                }
            ],
            "description": "<p>Molecule: one choice in a CIBG Huisstijl &quot;keuzelijst&quot; — <code>&lt;li&gt;&lt;div class=&quot;keuzelijst__link&quot;&gt;</code>\nwith a title and optional instructions (see choice-list.component.ts). Renders a\nplain (non-interactive) block when there&#39;s nothing to navigate to.</p>\n<p>The title is a Bootstrap &quot;stretched-link&quot; (<code>.stretched-link</code>, vendored) rather than\nthe whole box being an <code>&lt;a&gt;</code>: a <code>[choiceActions]</code> slot needs to project a sibling\naction (e.g. &quot;Annuleren&quot;) <em>inside</em> the same card, and a <code>&lt;button&gt;</code> can&#39;t nest\ninside an <code>&lt;a&gt;</code> (invalid HTML, broken a11y). stretched-link keeps the entire card\nclickable via its <code>::after</code> overlay; the projected action sits above that overlay\n(see its own <code>position:relative;z-index:2</code> at the call site) so it stays clickable.</p>\n<p>Unlike the &quot;aanvragen&quot; pattern&#39;s <code>.applications li a::after</code> (scoped to the <code>a</code>\ntag), CIBG&#39;s <code>.keuzelijst__link:after</code>/<code>:hover</code>/<code>:focus</code> rules key off the bare\nclass — keuzelijst assumes every item IS a link — so a non-interactive row would\notherwise inherit the chevron and hover accent too. The <code>--static</code> modifier below\nsuppresses both for that case. <code>:focus-within</code> restores the focus accent that\n<code>:focus</code> would have given the (no longer directly focused) card.</p>\n",
            "rawdescription": "\nMolecule: one choice in a CIBG Huisstijl \"keuzelijst\" — `<li><div class=\"keuzelijst__link\">`\nwith a title and optional instructions (see choice-list.component.ts). Renders a\nplain (non-interactive) block when there's nothing to navigate to.\n\nThe title is a Bootstrap \"stretched-link\" (`.stretched-link`, vendored) rather than\nthe whole box being an `<a>`: a `[choiceActions]` slot needs to project a sibling\naction (e.g. \"Annuleren\") *inside* the same card, and a `<button>` can't nest\ninside an `<a>` (invalid HTML, broken a11y). stretched-link keeps the entire card\nclickable via its `::after` overlay; the projected action sits above that overlay\n(see its own `position:relative;z-index:2` at the call site) so it stays clickable.\n\nUnlike the \"aanvragen\" pattern's `.applications li a::after` (scoped to the `a`\ntag), CIBG's `.keuzelijst__link:after`/`:hover`/`:focus` rules key off the bare\nclass — keuzelijst assumes every item IS a link — so a non-interactive row would\notherwise inherit the chevron and hover accent too. The `--static` modifier below\nsuppresses both for that case. `:focus-within` restores the focus accent that\n`:focus` would have given the (no longer directly focused) card.",
            "type": "component",
            "sourceCode": "import { Component, input, output } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\n/** Molecule: one choice in a CIBG Huisstijl \"keuzelijst\" — `<li><div class=\"keuzelijst__link\">`\n    with a title and optional instructions (see choice-list.component.ts). Renders a\n    plain (non-interactive) block when there's nothing to navigate to.\n\n    The title is a Bootstrap \"stretched-link\" (`.stretched-link`, vendored) rather than\n    the whole box being an `<a>`: a `[choiceActions]` slot needs to project a sibling\n    action (e.g. \"Annuleren\") *inside* the same card, and a `<button>` can't nest\n    inside an `<a>` (invalid HTML, broken a11y). stretched-link keeps the entire card\n    clickable via its `::after` overlay; the projected action sits above that overlay\n    (see its own `position:relative;z-index:2` at the call site) so it stays clickable.\n\n    Unlike the \"aanvragen\" pattern's `.applications li a::after` (scoped to the `a`\n    tag), CIBG's `.keuzelijst__link:after`/`:hover`/`:focus` rules key off the bare\n    class — keuzelijst assumes every item IS a link — so a non-interactive row would\n    otherwise inherit the chevron and hover accent too. The `--static` modifier below\n    suppresses both for that case. `:focus-within` restores the focus accent that\n    `:focus` would have given the (no longer directly focused) card. */\n@Component({\n  selector: 'app-choice-link',\n  imports: [RouterLink],\n  styles: [`\n    :host{display:contents}\n    .keuzelijst__link{position:relative}\n    .keuzelijst__link:focus-within{background-color:var(--rhc-color-cool-grey-100);box-shadow:inset 4px 0 0 0 var(--rhc-color-lintblauw-500)}\n    .keuzelijst__link--static::after{content:none}\n    .keuzelijst__link--static:hover{background-color:var(--rhc-color-cool-grey-200);box-shadow:none}\n  `],\n  template: `\n    <li class=\"keuzelijst__list-item\">\n      <div class=\"keuzelijst__link\" [class.keuzelijst__link--static]=\"!to() && !clickable()\">\n        <h3 class=\"keuzelijst__header\">\n          @if (to()) {\n            <a class=\"stretched-link\" [routerLink]=\"to()\">{{ heading() }}</a>\n          } @else if (clickable()) {\n            <a class=\"stretched-link\" href=\"#\" (click)=\"onActivate($event)\">{{ heading() }}</a>\n          } @else {\n            {{ heading() }}\n          }\n        </h3>\n        @if (instructions()) { <p class=\"keuzelijst__instructions\">{{ instructions() }}</p> }\n        <ng-content select=\"[choiceActions]\" />\n      </div>\n    </li>\n  `,\n})\nexport class ChoiceLinkComponent {\n  heading = input.required<string>();\n  instructions = input('');\n  /** Set for a plain routerLink navigation. */\n  to = input('');\n  /** Set when the choice navigates imperatively (e.g. resume with query params) — the\n      row still renders as a clickable card, but `activate` decides what happens. */\n  clickable = input(false);\n  activate = output<void>();\n\n  protected onActivate(ev: Event) {\n    ev.preventDefault(); // fragment href resolves against <base href>, not the route\n    this.activate.emit();\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:contents}\n    .keuzelijst__link{position:relative}\n    .keuzelijst__link:focus-within{background-color:var(--rhc-color-cool-grey-100);box-shadow:inset 4px 0 0 0 var(--rhc-color-lintblauw-500)}\n    .keuzelijst__link--static::after{content:none}\n    .keuzelijst__link--static:hover{background-color:var(--rhc-color-cool-grey-200);box-shadow:none}\n  \n",
            "extends": []
        },
        {
            "name": "ChoiceListComponent",
            "id": "component-ChoiceListComponent-b777b8e9f705d3973fc12f53394a8fda91a90e9c693f0235a9c8e7796a27c9d2449a8c1842ca0e1255e84370c63de141a4b7ece6b1348b51cf14aad8631f483f",
            "file": "src/app/shared/ui/choice-list/choice-list.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-choice-list",
            "styleUrls": [],
            "styles": [],
            "template": "<h2 class=\"header header--medium\" [id]=\"headingId\">{{ heading() }}</h2>\n<ul class=\"keuzelijst__list\" [attr.aria-labelledby]=\"headingId\">\n  <ng-content />\n</ul>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "heading",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 20,
                    "required": true
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "headingId",
                    "defaultValue": "`choice-list-${nextId++}`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 21,
                    "modifierKind": [
                        124,
                        148
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Molecule: the CIBG Huisstijl &quot;keuzelijst&quot; — a heading semantically linked\n(<code>aria-labelledby</code>) to a list of <code>&lt;app-choice-link&gt;</code> choices, used where a\nscreen offers a set of options to pick between (see\ndesignsystem.cibg.nl/componenten/keuzelijst). Domain-free — the caller\nsupplies the heading text and the choices.</p>\n",
            "rawdescription": "\nMolecule: the CIBG Huisstijl \"keuzelijst\" — a heading semantically linked\n(`aria-labelledby`) to a list of `<app-choice-link>` choices, used where a\nscreen offers a set of options to pick between (see\ndesignsystem.cibg.nl/componenten/keuzelijst). Domain-free — the caller\nsupplies the heading text and the choices.",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\n\nlet nextId = 0;\n\n/** Molecule: the CIBG Huisstijl \"keuzelijst\" — a heading semantically linked\n    (`aria-labelledby`) to a list of `<app-choice-link>` choices, used where a\n    screen offers a set of options to pick between (see\n    designsystem.cibg.nl/componenten/keuzelijst). Domain-free — the caller\n    supplies the heading text and the choices. */\n@Component({\n  selector: 'app-choice-list',\n  template: `\n    <h2 class=\"header header--medium\" [id]=\"headingId\">{{ heading() }}</h2>\n    <ul class=\"keuzelijst__list\" [attr.aria-labelledby]=\"headingId\">\n      <ng-content />\n    </ul>\n  `,\n})\nexport class ChoiceListComponent {\n  heading = input.required<string>();\n  protected readonly headingId = `choice-list-${nextId++}`;\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "ConceptsPage",
            "id": "component-ConceptsPage-0cd28640b0277100fb68a9784338eeb234e696a8cf5f397bd0c5e81aac4e3156a7f4c1d4e07f303cd44e2e55e2e675af6190eb4402a5efe7e7a58e0fba0a1a17",
            "file": "src/app/showcase/concepts.page.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-concepts-page",
            "styleUrls": [],
            "styles": [
                "\n    .section { margin: 0 0 3rem }\n    .lead { color: var(--rhc-color-grijs-700); max-width: 46rem; margin: 0.25rem 0 1.25rem }\n    .cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: 1.5rem; align-items: start }\n    .card { border: 1px solid var(--rhc-color-grijs-200, #e5e5e5); border-radius: 10px; padding: 1.25rem; background: #fff }\n    .card--bad { border-color: var(--rhc-color-rood-300, #f0b4b4) }\n    .card--good { border-color: var(--rhc-color-groen-300, #b4e0b4) }\n    .tag { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 700; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; margin: 0 0 0.75rem }\n    .tag::before { content: ''; width: 0.6rem; height: 0.6rem; border-radius: 50% }\n    .tag.bad { color: var(--rhc-color-rood-600, #a30000) } .tag.bad::before { background: var(--rhc-color-rood-500, #d52b1e) }\n    .tag.good { color: var(--rhc-color-groen-700, #277337) } .tag.good::before { background: var(--rhc-color-groen-500, #39870c) }\n    .tag.plain { color: var(--rhc-color-grijs-700) } .tag.plain::before { display: none }\n    pre { background: #1e2430; color: #e6e9ef; padding: 1rem; border-radius: 8px; overflow: auto; font-size: 0.82rem; line-height: 1.55; margin: 0 }\n    pre .k { color: #c792ea } pre .s { color: #c3e88d } pre .c { color: #7e8aa0; font-style: italic }\n    .note { font-size: 0.9rem; color: var(--rhc-color-grijs-700); margin: 0.75rem 0 0 }\n    /* live state diagram */\n    .machine { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1rem }\n    .node { padding: 0.4rem 0.8rem; border-radius: 999px; border: 1px solid var(--rhc-color-grijs-300, #ccc); font-size: 0.82rem; color: var(--rhc-color-grijs-700); transition: all .15s }\n    .node.on { background: var(--rhc-color-hemelblauw-100, #e5f1fb); border-color: var(--rhc-color-hemelblauw-500, #007bc7); color: var(--rhc-color-hemelblauw-700, #00567d); font-weight: 700 }\n    .steplist { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; margin: 0 0 1rem }\n    .pill { padding: 0.3rem 0.7rem; border-radius: 8px; background: var(--rhc-color-grijs-100, #f3f3f3); font-size: 0.8rem }\n    .pill.extra { background: var(--rhc-color-geel-100, #fff6d6); border: 1px dashed var(--rhc-color-geel-600, #c79a00) }\n    .arrow { color: var(--rhc-color-grijs-400, #999) }\n  "
            ],
            "template": "    <app-page-shell heading=\"Onmogelijke toestanden onmogelijk maken\" backLink=\"/dashboard\">\n      <p class=\"lead\">\n        Vijf functionele patronen die atomic design makkelijker maakt om te tonen — telkens\n\"fout\" (de oude vorm liet het toe) naast\"goed\" (het type maakt het onmogelijk).\n      </p>\n\n      <!-- 1. Discriminated unions -->\n      <section class=\"section\">\n        <app-heading [level]=\"2\">1 · Discriminated unions</app-heading>\n        <p class=\"lead\">Laat elke variant precies de gegevens dragen die kloppen — niets meer.</p>\n        <div class=\"cols\">\n          <div class=\"card card--bad\">\n            <p class=\"tag bad\">Fout — vlakke interface</p>\n            <pre [innerHTML]=\"unionBad\"></pre>\n            <p class=\"note\">Een doorgehaalde registratie houdt tóch een herregistratiedatum: onmogelijke toestand.</p>\n          </div>\n          <div class=\"card card--good\">\n            <p class=\"tag good\">Goed — sum type</p>\n            <app-registration-summary [reg]=\"doorgehaald\" />\n            <p class=\"note\">De variant <code>Doorgehaald</code> kent geen herregistratiedatum, dus de rij bestaat simpelweg niet.</p>\n          </div>\n        </div>\n      </section>\n\n      <!-- 2. RemoteData fold -->\n      <section class=\"section\">\n        <app-heading [level]=\"2\">2 · RemoteData fold</app-heading>\n        <p class=\"lead\">Eén waarde met vier elkaar uitsluitende toestanden in plaats van drie losse booleans.</p>\n        <div class=\"cols\">\n          <div class=\"card card--good\">\n            <p class=\"tag good\">Vier toestanden, één molecuul</p>\n            <p class=\"tag plain\">Loading</p>\n            <app-async [resource]=\"loadingRes\"><ng-template appAsyncLoaded let-v>{{ v }}</ng-template><ng-template appAsyncLoading><app-skeleton [count]=\"2\" height=\"1.2rem\" [delay]=\"0\" /></ng-template></app-async>\n            <p class=\"tag plain\">Empty</p>\n            <app-async [resource]=\"emptyRes\" [isEmpty]=\"isEmpty\"><ng-template appAsyncLoaded let-v>{{ v }}</ng-template></app-async>\n            <p class=\"tag plain\">Failure</p>\n            <app-async [resource]=\"errorRes\"><ng-template appAsyncLoaded let-v>{{ v }}</ng-template></app-async>\n            <p class=\"tag plain\">Success</p>\n            <app-async [resource]=\"successRes\" [isEmpty]=\"isEmpty\"><ng-template appAsyncLoaded let-v><ul>@for (i of v; track i) {<li>{{ i }}</li>}</ul></ng-template></app-async>\n          </div>\n          <div class=\"card card--good\">\n            <p class=\"tag good\">De exhaustieve fold</p>\n            <pre [innerHTML]=\"foldCode\"></pre>\n            <p class=\"note\">Een nieuwe variant toevoegen breekt de compile via <code>assertNever</code> tot je hem afhandelt.</p>\n          </div>\n        </div>\n      </section>\n\n      <!-- 3. Parse, don't validate -->\n      <section class=\"section\">\n        <app-heading [level]=\"2\">3 · Parse, don't validate</app-heading>\n        <p class=\"lead\">Na het parsen onthoudt het <em>type</em> dat de waarde geldig is.</p>\n        <div class=\"cols\">\n          <div class=\"card\">\n            <p class=\"tag good\">Smart constructor → Result</p>\n            <app-text-input inputId=\"pc\" [ngModel]=\"raw()\" (ngModelChange)=\"raw.set($event)\" name=\"pc\" placeholder=\"Typ een postcode, bijv. 1234 AB\" />\n          </div>\n          <div class=\"card\" [class.card--good]=\"parsed().ok\" [class.card--bad]=\"!parsed().ok\">\n            @if (parsed().ok) {\n              <p class=\"tag good\">ok</p>\n              <pre>Postcode =\"{{ $any(parsed()).value }}\"</pre>\n              <p class=\"note\">Een gevalideerde <code>Postcode</code> is een ander type dan een ruwe string.</p>\n            } @else {\n              <p class=\"tag bad\">err</p>\n              <pre>{{ $any(parsed()).error }}</pre>\n            }\n          </div>\n        </div>\n      </section>\n\n      <!-- 4. State machine / wizard (live state diagram) -->\n      <section class=\"section\">\n        <app-heading [level]=\"2\">4 · Form als state machine</app-heading>\n        <p class=\"lead\">Eén tagged union stuurt de UI. Speel met de wizard — de gemarkeerde toestand is de huidige.</p>\n        <div class=\"cols\">\n          <div class=\"card card--bad\">\n            <p class=\"tag bad\">Fout — losse booleans</p>\n            <pre [innerHTML]=\"machineBad\"></pre>\n            <p class=\"note\">Niets verhindert\"submitting\" mét validatiefouten of een successcherm met errors.</p>\n          </div>\n          <div class=\"card card--good\">\n            <p class=\"tag good\">Goed — één tagged union</p>\n            <div class=\"machine\">\n              @for (n of ['Editing','Submitting','Submitted','Failed']; track n) {\n                <span class=\"node\" [class.on]=\"w.state().tag === n\">{{ n }}</span>\n              }\n            </div>\n            <app-herregistratie-wizard #w />\n          </div>\n        </div>\n      </section>\n\n      <!-- 5. Fixed steps, questions revealed inline -->\n      <section class=\"section\">\n        <app-heading [level]=\"2\">5 · Vragenlijst met vaste stappen —\"vragen tonen, niet stappen toevoegen\"</app-heading>\n        <p class=\"lead\">\n          Het aantal stappen ligt vast (<code>STEPS</code>); vervolgvragen verschijnen <em>binnen</em> een stap\n          op basis van eerdere antwoorden. Antwoord\"ja\" op buitenland of vul weinig uren in, en er komt een\n          extra vraag bij in dezelfde stap — de voortgang\"van N\" blijft gelijk.\n        </p>\n        <div class=\"cols\">\n          <div class=\"card card--good\">\n            <p class=\"tag good\">Vaste stappen</p>\n            <div class=\"steplist\">\n              @for (s of iw.steps; track s; let last = $last) {\n                <span class=\"pill\">{{ s }}</span>\n                @if (!last) { <span class=\"arrow\">→</span> }\n              }\n            </div>\n            <p class=\"note\">De stappen zijn altijd dezelfde; alleen de vragen <em>binnen</em> een stap verschijnen of verdwijnen.</p>\n          </div>\n          <div class=\"card card--good\">\n            <p class=\"tag good\">De wizard</p>\n            <app-intake-wizard #iw />\n          </div>\n        </div>\n      </section>\n    </app-page-shell>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "doorgehaald",
                    "defaultValue": "{\n    bigNummer: '19012345601', naam: 'Dr. A. (Anna) de Vries', beroep: 'Arts',\n    registratiedatum: '2012-09-01', geboortedatum: '1985-03-14',\n    status: { tag: 'Doorgehaald', doorgehaaldOp: '2024-05-01', reden: 'Op eigen verzoek' },\n  }",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Registration",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 176
                },
                {
                    "name": "emptyRes",
                    "defaultValue": "fakeResource<string[]>('resolved', [])",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 183
                },
                {
                    "name": "errorRes",
                    "defaultValue": "fakeResource<string[]>('error', undefined, new Error('Demo'))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 184
                },
                {
                    "name": "foldCode",
                    "defaultValue": "`<span class=\"k\">foldRemote</span>(rd, {\n  loading:  () => spinner,\n  empty:    () => <span class=\"s\">'geen data'</span>,\n  failure:  (e) => alert(e),\n  success:  (v) => render(v),\n}); <span class=\"c\">// mist er één → compile-fout</span>`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 195
                },
                {
                    "name": "isEmpty",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 174
                },
                {
                    "name": "loadingRes",
                    "defaultValue": "fakeResource<string[]>('loading')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 182
                },
                {
                    "name": "machineBad",
                    "defaultValue": "`submitting = <span class=\"k\">signal</span>(false);\nsubmitted  = <span class=\"k\">signal</span>(false);\nerrors     = <span class=\"k\">signal</span>&lt;...&gt;({});\n<span class=\"c\">// submitting === true && errors.size > 0 ? 🤷</span>`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 202
                },
                {
                    "name": "parsed",
                    "defaultValue": "computed(() => parsePostcode(this.raw()))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 188
                },
                {
                    "name": "raw",
                    "defaultValue": "signal('')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 187
                },
                {
                    "name": "successRes",
                    "defaultValue": "fakeResource<string[]>('resolved', ['Huisartsgeneeskunde', 'Spoedeisende hulp'])",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 185
                },
                {
                    "name": "unionBad",
                    "defaultValue": "`<span class=\"k\">interface</span> Registration {\n  status: <span class=\"s\">'Geregistreerd'</span> | <span class=\"s\">'Doorgehaald'</span>;\n  herregistratieDatum: string; <span class=\"c\">// altijd aanwezig 😬</span>\n}`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 190
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "FormsModule",
                    "type": "module"
                },
                {
                    "name": "PageShellComponent",
                    "type": "component"
                },
                {
                    "name": "HeadingComponent",
                    "type": "component"
                },
                {
                    "name": "TextInputComponent",
                    "type": "component"
                },
                {
                    "name": "ASYNC"
                },
                {
                    "name": "SkeletonComponent",
                    "type": "component"
                },
                {
                    "name": "RegistrationSummaryComponent",
                    "type": "component"
                },
                {
                    "name": "HerregistratieWizardComponent",
                    "type": "component"
                },
                {
                    "name": "IntakeWizardComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Teaching showcase: each section pairs the impossible-state-permitting&quot;before&quot;\nwith the&quot;after&quot; where the type system rules it out. Composition-only.</p>\n",
            "rawdescription": "\nTeaching showcase: each section pairs the impossible-state-permitting\"before\"\nwith the\"after\" where the type system rules it out. Composition-only.",
            "type": "component",
            "sourceCode": "import { Component, computed, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport type { Resource } from '@angular/core';\nimport { PageShellComponent } from '@shared/layout/page-shell/page-shell.component';\nimport { HeadingComponent } from '@shared/ui/heading/heading.component';\nimport { TextInputComponent } from '@shared/ui/text-input/text-input.component';\nimport { ASYNC } from '@shared/ui/async/async.component';\nimport { SkeletonComponent } from '@shared/ui/skeleton/skeleton.component';\nimport { RegistrationSummaryComponent } from '@registratie/ui/registration-summary/registration-summary.component';\nimport { HerregistratieWizardComponent } from '@herregistratie/ui/herregistratie-wizard/herregistratie-wizard.component';\nimport { IntakeWizardComponent } from '@herregistratie/ui/intake-wizard/intake-wizard.component';\nimport { Registration } from '@registratie/domain/registration';\nimport { parsePostcode } from '@registratie/domain/value-objects/postcode';\n\n/** Minimal fake Resource so <app-async> can be driven through every state without HTTP. */\nfunction fakeResource<T>(status: string, value?: T, error?: Error): Resource<T> {\n  return { value: () => value as T, status: () => status, error: () => error, hasValue: () => value !== undefined, reload: () => {} } as unknown as Resource<T>;\n}\n\n/** Teaching showcase: each section pairs the impossible-state-permitting\"before\"\n    with the\"after\" where the type system rules it out. Composition-only. */\n@Component({\n  selector: 'app-concepts-page',\n  imports: [\n    FormsModule, PageShellComponent, HeadingComponent, TextInputComponent,\n    ...ASYNC, SkeletonComponent, RegistrationSummaryComponent, HerregistratieWizardComponent, IntakeWizardComponent,\n  ],\n  styles: [`\n    .section { margin: 0 0 3rem }\n    .lead { color: var(--rhc-color-grijs-700); max-width: 46rem; margin: 0.25rem 0 1.25rem }\n    .cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: 1.5rem; align-items: start }\n    .card { border: 1px solid var(--rhc-color-grijs-200, #e5e5e5); border-radius: 10px; padding: 1.25rem; background: #fff }\n    .card--bad { border-color: var(--rhc-color-rood-300, #f0b4b4) }\n    .card--good { border-color: var(--rhc-color-groen-300, #b4e0b4) }\n    .tag { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 700; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; margin: 0 0 0.75rem }\n    .tag::before { content: ''; width: 0.6rem; height: 0.6rem; border-radius: 50% }\n    .tag.bad { color: var(--rhc-color-rood-600, #a30000) } .tag.bad::before { background: var(--rhc-color-rood-500, #d52b1e) }\n    .tag.good { color: var(--rhc-color-groen-700, #277337) } .tag.good::before { background: var(--rhc-color-groen-500, #39870c) }\n    .tag.plain { color: var(--rhc-color-grijs-700) } .tag.plain::before { display: none }\n    pre { background: #1e2430; color: #e6e9ef; padding: 1rem; border-radius: 8px; overflow: auto; font-size: 0.82rem; line-height: 1.55; margin: 0 }\n    pre .k { color: #c792ea } pre .s { color: #c3e88d } pre .c { color: #7e8aa0; font-style: italic }\n    .note { font-size: 0.9rem; color: var(--rhc-color-grijs-700); margin: 0.75rem 0 0 }\n    /* live state diagram */\n    .machine { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1rem }\n    .node { padding: 0.4rem 0.8rem; border-radius: 999px; border: 1px solid var(--rhc-color-grijs-300, #ccc); font-size: 0.82rem; color: var(--rhc-color-grijs-700); transition: all .15s }\n    .node.on { background: var(--rhc-color-hemelblauw-100, #e5f1fb); border-color: var(--rhc-color-hemelblauw-500, #007bc7); color: var(--rhc-color-hemelblauw-700, #00567d); font-weight: 700 }\n    .steplist { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; margin: 0 0 1rem }\n    .pill { padding: 0.3rem 0.7rem; border-radius: 8px; background: var(--rhc-color-grijs-100, #f3f3f3); font-size: 0.8rem }\n    .pill.extra { background: var(--rhc-color-geel-100, #fff6d6); border: 1px dashed var(--rhc-color-geel-600, #c79a00) }\n    .arrow { color: var(--rhc-color-grijs-400, #999) }\n  `],\n  template: `\n    <app-page-shell heading=\"Onmogelijke toestanden onmogelijk maken\" backLink=\"/dashboard\">\n      <p class=\"lead\">\n        Vijf functionele patronen die atomic design makkelijker maakt om te tonen — telkens\n\"fout\" (de oude vorm liet het toe) naast\"goed\" (het type maakt het onmogelijk).\n      </p>\n\n      <!-- 1. Discriminated unions -->\n      <section class=\"section\">\n        <app-heading [level]=\"2\">1 · Discriminated unions</app-heading>\n        <p class=\"lead\">Laat elke variant precies de gegevens dragen die kloppen — niets meer.</p>\n        <div class=\"cols\">\n          <div class=\"card card--bad\">\n            <p class=\"tag bad\">Fout — vlakke interface</p>\n            <pre [innerHTML]=\"unionBad\"></pre>\n            <p class=\"note\">Een doorgehaalde registratie houdt tóch een herregistratiedatum: onmogelijke toestand.</p>\n          </div>\n          <div class=\"card card--good\">\n            <p class=\"tag good\">Goed — sum type</p>\n            <app-registration-summary [reg]=\"doorgehaald\" />\n            <p class=\"note\">De variant <code>Doorgehaald</code> kent geen herregistratiedatum, dus de rij bestaat simpelweg niet.</p>\n          </div>\n        </div>\n      </section>\n\n      <!-- 2. RemoteData fold -->\n      <section class=\"section\">\n        <app-heading [level]=\"2\">2 · RemoteData fold</app-heading>\n        <p class=\"lead\">Eén waarde met vier elkaar uitsluitende toestanden in plaats van drie losse booleans.</p>\n        <div class=\"cols\">\n          <div class=\"card card--good\">\n            <p class=\"tag good\">Vier toestanden, één molecuul</p>\n            <p class=\"tag plain\">Loading</p>\n            <app-async [resource]=\"loadingRes\"><ng-template appAsyncLoaded let-v>{{ v }}</ng-template><ng-template appAsyncLoading><app-skeleton [count]=\"2\" height=\"1.2rem\" [delay]=\"0\" /></ng-template></app-async>\n            <p class=\"tag plain\">Empty</p>\n            <app-async [resource]=\"emptyRes\" [isEmpty]=\"isEmpty\"><ng-template appAsyncLoaded let-v>{{ v }}</ng-template></app-async>\n            <p class=\"tag plain\">Failure</p>\n            <app-async [resource]=\"errorRes\"><ng-template appAsyncLoaded let-v>{{ v }}</ng-template></app-async>\n            <p class=\"tag plain\">Success</p>\n            <app-async [resource]=\"successRes\" [isEmpty]=\"isEmpty\"><ng-template appAsyncLoaded let-v><ul>@for (i of v; track i) {<li>{{ i }}</li>}</ul></ng-template></app-async>\n          </div>\n          <div class=\"card card--good\">\n            <p class=\"tag good\">De exhaustieve fold</p>\n            <pre [innerHTML]=\"foldCode\"></pre>\n            <p class=\"note\">Een nieuwe variant toevoegen breekt de compile via <code>assertNever</code> tot je hem afhandelt.</p>\n          </div>\n        </div>\n      </section>\n\n      <!-- 3. Parse, don't validate -->\n      <section class=\"section\">\n        <app-heading [level]=\"2\">3 · Parse, don't validate</app-heading>\n        <p class=\"lead\">Na het parsen onthoudt het <em>type</em> dat de waarde geldig is.</p>\n        <div class=\"cols\">\n          <div class=\"card\">\n            <p class=\"tag good\">Smart constructor → Result</p>\n            <app-text-input inputId=\"pc\" [ngModel]=\"raw()\" (ngModelChange)=\"raw.set($event)\" name=\"pc\" placeholder=\"Typ een postcode, bijv. 1234 AB\" />\n          </div>\n          <div class=\"card\" [class.card--good]=\"parsed().ok\" [class.card--bad]=\"!parsed().ok\">\n            @if (parsed().ok) {\n              <p class=\"tag good\">ok</p>\n              <pre>Postcode =\"{{ $any(parsed()).value }}\"</pre>\n              <p class=\"note\">Een gevalideerde <code>Postcode</code> is een ander type dan een ruwe string.</p>\n            } @else {\n              <p class=\"tag bad\">err</p>\n              <pre>{{ $any(parsed()).error }}</pre>\n            }\n          </div>\n        </div>\n      </section>\n\n      <!-- 4. State machine / wizard (live state diagram) -->\n      <section class=\"section\">\n        <app-heading [level]=\"2\">4 · Form als state machine</app-heading>\n        <p class=\"lead\">Eén tagged union stuurt de UI. Speel met de wizard — de gemarkeerde toestand is de huidige.</p>\n        <div class=\"cols\">\n          <div class=\"card card--bad\">\n            <p class=\"tag bad\">Fout — losse booleans</p>\n            <pre [innerHTML]=\"machineBad\"></pre>\n            <p class=\"note\">Niets verhindert\"submitting\" mét validatiefouten of een successcherm met errors.</p>\n          </div>\n          <div class=\"card card--good\">\n            <p class=\"tag good\">Goed — één tagged union</p>\n            <div class=\"machine\">\n              @for (n of ['Editing','Submitting','Submitted','Failed']; track n) {\n                <span class=\"node\" [class.on]=\"w.state().tag === n\">{{ n }}</span>\n              }\n            </div>\n            <app-herregistratie-wizard #w />\n          </div>\n        </div>\n      </section>\n\n      <!-- 5. Fixed steps, questions revealed inline -->\n      <section class=\"section\">\n        <app-heading [level]=\"2\">5 · Vragenlijst met vaste stappen —\"vragen tonen, niet stappen toevoegen\"</app-heading>\n        <p class=\"lead\">\n          Het aantal stappen ligt vast (<code>STEPS</code>); vervolgvragen verschijnen <em>binnen</em> een stap\n          op basis van eerdere antwoorden. Antwoord\"ja\" op buitenland of vul weinig uren in, en er komt een\n          extra vraag bij in dezelfde stap — de voortgang\"van N\" blijft gelijk.\n        </p>\n        <div class=\"cols\">\n          <div class=\"card card--good\">\n            <p class=\"tag good\">Vaste stappen</p>\n            <div class=\"steplist\">\n              @for (s of iw.steps; track s; let last = $last) {\n                <span class=\"pill\">{{ s }}</span>\n                @if (!last) { <span class=\"arrow\">→</span> }\n              }\n            </div>\n            <p class=\"note\">De stappen zijn altijd dezelfde; alleen de vragen <em>binnen</em> een stap verschijnen of verdwijnen.</p>\n          </div>\n          <div class=\"card card--good\">\n            <p class=\"tag good\">De wizard</p>\n            <app-intake-wizard #iw />\n          </div>\n        </div>\n      </section>\n    </app-page-shell>\n  `,\n})\nexport class ConceptsPage {\n  isEmpty = (v: string[]) => !v || v.length === 0;\n\n  doorgehaald: Registration = {\n    bigNummer: '19012345601', naam: 'Dr. A. (Anna) de Vries', beroep: 'Arts',\n    registratiedatum: '2012-09-01', geboortedatum: '1985-03-14',\n    status: { tag: 'Doorgehaald', doorgehaaldOp: '2024-05-01', reden: 'Op eigen verzoek' },\n  };\n\n  loadingRes = fakeResource<string[]>('loading');\n  emptyRes = fakeResource<string[]>('resolved', []);\n  errorRes = fakeResource<string[]>('error', undefined, new Error('Demo'));\n  successRes = fakeResource<string[]>('resolved', ['Huisartsgeneeskunde', 'Spoedeisende hulp']);\n\n  raw = signal('');\n  parsed = computed(() => parsePostcode(this.raw()));\n\n  unionBad = `<span class=\"k\">interface</span> Registration {\n  status: <span class=\"s\">'Geregistreerd'</span> | <span class=\"s\">'Doorgehaald'</span>;\n  herregistratieDatum: string; <span class=\"c\">// altijd aanwezig 😬</span>\n}`;\n\n  foldCode = `<span class=\"k\">foldRemote</span>(rd, {\n  loading:  () => spinner,\n  empty:    () => <span class=\"s\">'geen data'</span>,\n  failure:  (e) => alert(e),\n  success:  (v) => render(v),\n}); <span class=\"c\">// mist er één → compile-fout</span>`;\n\n  machineBad = `submitting = <span class=\"k\">signal</span>(false);\nsubmitted  = <span class=\"k\">signal</span>(false);\nerrors     = <span class=\"k\">signal</span>&lt;...&gt;({});\n<span class=\"c\">// submitting === true && errors.size > 0 ? 🤷</span>`;\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    .section { margin: 0 0 3rem }\n    .lead { color: var(--rhc-color-grijs-700); max-width: 46rem; margin: 0.25rem 0 1.25rem }\n    .cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: 1.5rem; align-items: start }\n    .card { border: 1px solid var(--rhc-color-grijs-200, #e5e5e5); border-radius: 10px; padding: 1.25rem; background: #fff }\n    .card--bad { border-color: var(--rhc-color-rood-300, #f0b4b4) }\n    .card--good { border-color: var(--rhc-color-groen-300, #b4e0b4) }\n    .tag { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 700; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; margin: 0 0 0.75rem }\n    .tag::before { content: ''; width: 0.6rem; height: 0.6rem; border-radius: 50% }\n    .tag.bad { color: var(--rhc-color-rood-600, #a30000) } .tag.bad::before { background: var(--rhc-color-rood-500, #d52b1e) }\n    .tag.good { color: var(--rhc-color-groen-700, #277337) } .tag.good::before { background: var(--rhc-color-groen-500, #39870c) }\n    .tag.plain { color: var(--rhc-color-grijs-700) } .tag.plain::before { display: none }\n    pre { background: #1e2430; color: #e6e9ef; padding: 1rem; border-radius: 8px; overflow: auto; font-size: 0.82rem; line-height: 1.55; margin: 0 }\n    pre .k { color: #c792ea } pre .s { color: #c3e88d } pre .c { color: #7e8aa0; font-style: italic }\n    .note { font-size: 0.9rem; color: var(--rhc-color-grijs-700); margin: 0.75rem 0 0 }\n    /* live state diagram */\n    .machine { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1rem }\n    .node { padding: 0.4rem 0.8rem; border-radius: 999px; border: 1px solid var(--rhc-color-grijs-300, #ccc); font-size: 0.82rem; color: var(--rhc-color-grijs-700); transition: all .15s }\n    .node.on { background: var(--rhc-color-hemelblauw-100, #e5f1fb); border-color: var(--rhc-color-hemelblauw-500, #007bc7); color: var(--rhc-color-hemelblauw-700, #00567d); font-weight: 700 }\n    .steplist { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; margin: 0 0 1rem }\n    .pill { padding: 0.3rem 0.7rem; border-radius: 8px; background: var(--rhc-color-grijs-100, #f3f3f3); font-size: 0.8rem }\n    .pill.extra { background: var(--rhc-color-geel-100, #fff6d6); border: 1px dashed var(--rhc-color-geel-600, #c79a00) }\n    .arrow { color: var(--rhc-color-grijs-400, #999) }\n  \n",
            "extends": []
        },
        {
            "name": "ConfirmationComponent",
            "id": "component-ConfirmationComponent-c5252abbacaea682182ea2898bccffe310079b02e7ca45fd99d8c54882993752324ecb300727e644d854c7903c2a5db71fc828a03c2c23437498ccf8c05607b3",
            "file": "src/app/shared/ui/confirmation/confirmation.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-confirmation",
            "styleUrls": [],
            "styles": [],
            "template": "<div class=\"confirmation\">\n  <svg class=\"confirmation__checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\" height=\"52\" width=\"52\">\n    <circle class=\"confirmation__checkmark-circle\" cx=\"26\" cy=\"26\" r=\"18\" fill=\"none\" />\n    <path class=\"confirmation__checkmark-check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n  </svg>\n  <div class=\"confirmation__title\">\n    <span class=\"visually-hidden\">{{ successPrefix() }}</span>{{ title() }}\n  </div>\n</div>\n<ng-content />\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "successPrefix",
                    "defaultValue": "$localize`:@@confirmation.succes:Succes:`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 24,
                    "required": false
                },
                {
                    "name": "title",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 23,
                    "required": true
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Molecule: the CIBG Huisstijl &quot;bevestiging&quot; (confirmation) — an animated green\ncheckmark banner shown at the end of an aanvraagproces, ONLY when the user has\nnothing left to do (see designsystem.cibg.nl/componenten/bevestiging). Follow-up\ncontent (a reference number, a restart button) is projected below the banner.</p>\n",
            "rawdescription": "\nMolecule: the CIBG Huisstijl \"bevestiging\" (confirmation) — an animated green\ncheckmark banner shown at the end of an aanvraagproces, ONLY when the user has\nnothing left to do (see designsystem.cibg.nl/componenten/bevestiging). Follow-up\ncontent (a reference number, a restart button) is projected below the banner.",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\n\n/** Molecule: the CIBG Huisstijl \"bevestiging\" (confirmation) — an animated green\n    checkmark banner shown at the end of an aanvraagproces, ONLY when the user has\n    nothing left to do (see designsystem.cibg.nl/componenten/bevestiging). Follow-up\n    content (a reference number, a restart button) is projected below the banner. */\n@Component({\n  selector: 'app-confirmation',\n  template: `\n    <div class=\"confirmation\">\n      <svg class=\"confirmation__checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\" height=\"52\" width=\"52\">\n        <circle class=\"confirmation__checkmark-circle\" cx=\"26\" cy=\"26\" r=\"18\" fill=\"none\" />\n        <path class=\"confirmation__checkmark-check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n      </svg>\n      <div class=\"confirmation__title\">\n        <span class=\"visually-hidden\">{{ successPrefix() }}</span>{{ title() }}\n      </div>\n    </div>\n    <ng-content />\n  `,\n})\nexport class ConfirmationComponent {\n  title = input.required<string>();\n  successPrefix = input($localize`:@@confirmation.succes:Succes:`);\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "DashboardPage",
            "id": "component-DashboardPage-bbba994d5f2f5f15769970d79a345aa04ec549c71f1af80fa5ee9572e0831ae7090aa78fb23cb2bf1392d80aaff4b0e2e0775c4952628c19ed887d0536692ebe",
            "file": "src/app/registratie/ui/dashboard.page.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-dashboard-page",
            "styleUrls": [],
            "styles": [],
            "template": "<app-page-shell i18n-heading=\"@@dashboard.heading\" heading=\"Mijn overzicht\" i18n-intro=\"@@dashboard.intro\" intro=\"Welkom in uw persoonlijke omgeving van het BIG-register. Hier ziet u uw registratie en regelt u uw zaken.\">\n    <div class=\"app-stack\">\n      @if (aanvragen().length) {\n        <section>\n          @for (a of concepten(); track a.id) {\n            <app-aanvraag-block animate.enter=\"app-item-enter\" animate.leave=\"app-item-leave\" [aanvraag]=\"a\" (resume)=\"resume(a)\" (cancel)=\"cancelAanvraag(a)\" />\n          }\n          @if (ingediend().length) {\n            <app-choice-list i18n-heading=\"@@dashboard.mijnAanvragen\" heading=\"Mijn aanvragen\" class=\"app-section\">\n              @for (a of ingediend(); track a.id) {\n                <app-aanvraag-block animate.enter=\"app-item-enter\" animate.leave=\"app-item-leave\" [aanvraag]=\"a\" />\n              }\n            </app-choice-list>\n          }\n        </section>\n      }\n\n      @if (store.pendingHerregistratie()) {\n        <app-alert type=\"info\" i18n=\"@@dashboard.pendingHerregistratie\">Uw herregistratie-aanvraag is in behandeling.</app-alert>\n      }\n\n      <app-async [data]=\"store.profile()\">\n        <ng-template appAsyncLoaded let-p>\n          @let tasks = tasksFor($any(p).registration);\n\n          <section>\n            @if (tasks.length) {\n              <app-task-list class=\"app-section\" i18n-listHeading=\"@@dashboard.watMoetIkRegelen\" listHeading=\"Wat moet ik regelen\" [tasks]=\"tasks\" />\n            } @else {\n              <app-heading [level]=\"2\" i18n=\"@@dashboard.watMoetIkRegelen\">Wat moet ik regelen</app-heading>\n              <p class=\"app-text-subtle\" i18n=\"@@dashboard.nietsOpenstaan\">U heeft op dit moment niets openstaan.</p>\n            }\n          </section>\n\n          <section>\n            <app-heading [level]=\"2\" i18n=\"@@dashboard.mijnRegistratie\">Mijn registratie</app-heading>\n            <div class=\"app-section\">\n              <app-registration-summary [reg]=\"$any(p).registration\" />\n            </div>\n            <app-data-block class=\"app-section\" i18n-heading=\"@@dashboard.persoonsgegevens\" heading=\"Persoonsgegevens (BRP)\">\n              <div app-data-row i18n-key=\"@@dashboard.straat\" key=\"Straat\" [value]=\"$any(p).person.adres.straat\"></div>\n              <div app-data-row i18n-key=\"@@dashboard.postcode\" key=\"Postcode\" [value]=\"$any(p).person.adres.postcode\"></div>\n              <div app-data-row i18n-key=\"@@dashboard.woonplaats\" key=\"Woonplaats\" [value]=\"$any(p).person.adres.woonplaats\"></div>\n            </app-data-block>\n          </section>\n        </ng-template>\n        <ng-template appAsyncLoading>\n          <app-skeleton height=\"2.5rem\" [count]=\"6\" />\n        </ng-template>\n      </app-async>\n\n      <section>\n        <app-heading [level]=\"2\" i18n=\"@@dashboard.specialismen\">Specialismen en aantekeningen</app-heading>\n        <div class=\"app-section\">\n          <app-async [data]=\"store.aantekeningen()\">\n            <ng-template appAsyncLoaded let-r>\n              <app-registration-table [rows]=\"$any(r)\" />\n            </ng-template>\n            <ng-template appAsyncLoading>\n              <app-skeleton height=\"2.5rem\" [count]=\"3\" />\n            </ng-template>\n            <ng-template appAsyncEmpty>\n              <p class=\"app-text-subtle\" i18n=\"@@dashboard.geenSpecialismen\">U heeft nog geen specialismen of aantekeningen.</p>\n            </ng-template>\n          </app-async>\n        </div>\n      </section>\n\n      <section>\n        <app-heading [level]=\"2\" i18n=\"@@dashboard.watWiltUDoen\">Wat wilt u doen?</app-heading>\n        <app-application-list class=\"app-section\">\n          @for (a of acties; track a.to) {\n            <app-application-link [heading]=\"a.titel\" [subtitle]=\"a.tekst\" [cta]=\"a.actie\" [to]=\"a.to\" />\n          }\n        </app-application-list>\n      </section>\n    </div>\n</app-page-shell>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "aanvragen",
                    "defaultValue": "computed<Aanvraag[]>(() => {\n    const rd = this.apps.applications();\n    if (rd.tag !== 'Success') return [];\n    const order: Record<Aanvraag['status']['tag'], number> = { Concept: 0, InBehandeling: 1, Goedgekeurd: 2, Afgewezen: 2 };\n    return rd.value.slice().sort((a, b) => order[a.status.tag] - order[b.status.tag]);\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The user&#39;s applications, sorted Concept → In behandeling → resolved. Empty →\nthe&quot;Mijn aanvragen&quot; section is hidden (see template).</p>\n",
                    "line": 127,
                    "rawdescription": "\nThe user's applications, sorted Concept → In behandeling → resolved. Empty →\nthe\"Mijn aanvragen\" section is hidden (see template).",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "acties",
                    "defaultValue": "[\n    { to: '/registreren', titel: $localize`:@@dashboard.actie.inschrijven.titel:Inschrijven`, tekst: $localize`:@@dashboard.actie.inschrijven.tekst:Schrijf u in in het BIG-register via de registratiewizard.`, actie: $localize`:@@dashboard.actie.inschrijven.actie:Start inschrijving` },\n    { to: '/herregistratie', titel: $localize`:@@dashboard.actie.herregistratie.titel:Herregistratie aanvragen`, tekst: $localize`:@@dashboard.actie.herregistratie.tekst:Verleng uw registratie voor de komende periode.`, actie: $localize`:@@dashboard.actie.herregistratie.actie:Vraag aan` },\n    { to: '/intake', titel: $localize`:@@dashboard.actie.intake.titel:Herregistratie-intake`, tekst: $localize`:@@dashboard.actie.intake.tekst:Vragenlijst met vertakkingen.`, actie: $localize`:@@dashboard.actie.intake.actie:Start intake` },\n    { to: '/registratie', titel: $localize`:@@dashboard.actie.wijzigen.titel:Gegevens wijzigen`, tekst: $localize`:@@dashboard.actie.wijzigen.tekst:Bekijk uw gegevens of geef een wijziging door.`, actie: $localize`:@@dashboard.actie.wijzigen.actie:Bekijk gegevens` },\n    { to: '/concepts', titel: $localize`:@@dashboard.actie.concepten.titel:Functionele patronen`, tekst: $localize`:@@dashboard.actie.concepten.tekst:Bekijk de FP/TEA-bouwstenen van deze POC.`, actie: $localize`:@@dashboard.actie.concepten.actie:Bekijk patronen` },\n    { to: '/brief', titel: $localize`:@@dashboard.actie.brief.titel:Brief opstellen`, tekst: $localize`:@@dashboard.actie.brief.tekst:Stel een brief samen uit vaste en vrije onderdelen.`, actie: $localize`:@@dashboard.actie.brief.actie:Start brief` },\n  ]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Primary transactional actions, as an &quot;aanvragen&quot; list (see CIBG&#39;s\ncomponenten/aanvragen). The core portal sections live in the header nav now;\nthe teaching pages (concepts/brief) are only reachable from here.</p>\n",
                    "line": 163,
                    "rawdescription": "\nPrimary transactional actions, as an \"aanvragen\" list (see CIBG's\ncomponenten/aanvragen). The core portal sections live in the header nav now;\nthe teaching pages (concepts/brief) are only reachable from here.",
                    "modifierKind": [
                        124,
                        148
                    ]
                },
                {
                    "name": "apps",
                    "defaultValue": "inject(ApplicationsStore)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 116,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "concepten",
                    "defaultValue": "computed(() => this.aanvragen().filter((a) => a.status.tag === 'Concept'))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>A Concept (&quot;lopende aanvraag&quot;) renders as a melding above the list; the rest\nas keuzelijst items — the two shapes need different HTML contexts.</p>\n",
                    "line": 135,
                    "rawdescription": "\nA Concept (\"lopende aanvraag\") renders as a melding above the list; the rest\nas keuzelijst items — the two shapes need different HTML contexts.",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "eligible",
                    "defaultValue": "computed(() => {\n    const d = this.store.decisions();\n    return d.tag === 'Success' && d.value.eligibleForHerregistratie;\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Server-computed eligibility (rendered, not recomputed).</p>\n",
                    "line": 151,
                    "rawdescription": "\nServer-computed eligibility (rendered, not recomputed).",
                    "modifierKind": [
                        123,
                        148
                    ]
                },
                {
                    "name": "ingediend",
                    "defaultValue": "computed(() => this.aanvragen().filter((a) => a.status.tag !== 'Concept'))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 136,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "resumeRoutes",
                    "defaultValue": "{\n    registratie: '/registreren',\n    herregistratie: '/herregistratie',\n    intake: '/intake',\n  }",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Record<AanvraagType | string>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 138,
                    "modifierKind": [
                        123,
                        148
                    ]
                },
                {
                    "name": "router",
                    "defaultValue": "inject(Router)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 117,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "store",
                    "defaultValue": "inject(BigProfileStore)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 115,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "cancelAanvraag",
                    "args": [
                        {
                            "name": "a",
                            "type": "Aanvraag",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 146,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "a",
                            "type": "Aanvraag",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "resume",
                    "args": [
                        {
                            "name": "a",
                            "type": "Aanvraag",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 143,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "a",
                            "type": "Aanvraag",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "tasksFor",
                    "args": [
                        {
                            "name": "reg",
                            "type": "Registration",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 156,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "reg",
                            "type": "Registration",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "PageShellComponent",
                    "type": "component"
                },
                {
                    "name": "HeadingComponent",
                    "type": "component"
                },
                {
                    "name": "AlertComponent",
                    "type": "component"
                },
                {
                    "name": "SkeletonComponent",
                    "type": "component"
                },
                {
                    "name": "DataRowComponent",
                    "type": "component"
                },
                {
                    "name": "DataBlockComponent",
                    "type": "component"
                },
                {
                    "name": "TaskListComponent",
                    "type": "component"
                },
                {
                    "name": "ApplicationListComponent",
                    "type": "component"
                },
                {
                    "name": "ApplicationLinkComponent",
                    "type": "component"
                },
                {
                    "name": "ChoiceListComponent",
                    "type": "component"
                },
                {
                    "name": "ASYNC"
                },
                {
                    "name": "RegistrationSummaryComponent",
                    "type": "component"
                },
                {
                    "name": "RegistrationTableComponent",
                    "type": "component"
                },
                {
                    "name": "AanvraagBlockComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Page:&quot;Mijn overzicht&quot; — the portal home, following the NL Design System\n&quot;Mijn omgeving&quot; pattern (side nav +&quot;Wat moet ik regelen&quot; +&quot;Mijn zaken&quot;).</p>\n",
            "rawdescription": "\nPage:\"Mijn overzicht\" — the portal home, following the NL Design System\n\"Mijn omgeving\" pattern (side nav +\"Wat moet ik regelen\" +\"Mijn zaken\").",
            "type": "component",
            "sourceCode": "import { Component, computed, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { PageShellComponent } from '@shared/layout/page-shell/page-shell.component';\nimport { HeadingComponent } from '@shared/ui/heading/heading.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { SkeletonComponent } from '@shared/ui/skeleton/skeleton.component';\nimport { DataRowComponent } from '@shared/ui/data-row/data-row.component';\nimport { DataBlockComponent } from '@shared/ui/data-block/data-block.component';\nimport { TaskListComponent } from '@shared/ui/task-list/task-list.component';\nimport { ApplicationListComponent } from '@shared/ui/application-list/application-list.component';\nimport { ApplicationLinkComponent } from '@shared/ui/application-link/application-link.component';\nimport { ChoiceListComponent } from '@shared/ui/choice-list/choice-list.component';\nimport { ASYNC } from '@shared/ui/async/async.component';\nimport { RegistrationSummaryComponent } from '@registratie/ui/registration-summary/registration-summary.component';\nimport { RegistrationTableComponent } from '@registratie/ui/registration-table/registration-table.component';\nimport { AanvraagBlockComponent } from '@registratie/ui/aanvraag-block/aanvraag-block.component';\nimport { BigProfileStore } from '@registratie/application/big-profile.store';\nimport { ApplicationsStore } from '@registratie/application/applications.store';\nimport { Registration } from '@registratie/domain/registration';\nimport { Aanvraag, AanvraagType } from '@registratie/domain/aanvraag';\nimport { tasksFromProfile } from '@registratie/domain/tasks';\n\n/** Page:\"Mijn overzicht\" — the portal home, following the NL Design System\n\"Mijn omgeving\" pattern (side nav +\"Wat moet ik regelen\" +\"Mijn zaken\"). */\n@Component({\n  selector: 'app-dashboard-page',\n  imports: [\n    PageShellComponent, HeadingComponent, AlertComponent, SkeletonComponent,\n    DataRowComponent, DataBlockComponent, TaskListComponent, ApplicationListComponent, ApplicationLinkComponent,\n    ChoiceListComponent, ...ASYNC,\n    RegistrationSummaryComponent, RegistrationTableComponent, AanvraagBlockComponent,\n  ],\n  template: `\n    <app-page-shell i18n-heading=\"@@dashboard.heading\" heading=\"Mijn overzicht\" i18n-intro=\"@@dashboard.intro\" intro=\"Welkom in uw persoonlijke omgeving van het BIG-register. Hier ziet u uw registratie en regelt u uw zaken.\">\n        <div class=\"app-stack\">\n          @if (aanvragen().length) {\n            <section>\n              @for (a of concepten(); track a.id) {\n                <app-aanvraag-block animate.enter=\"app-item-enter\" animate.leave=\"app-item-leave\" [aanvraag]=\"a\" (resume)=\"resume(a)\" (cancel)=\"cancelAanvraag(a)\" />\n              }\n              @if (ingediend().length) {\n                <app-choice-list i18n-heading=\"@@dashboard.mijnAanvragen\" heading=\"Mijn aanvragen\" class=\"app-section\">\n                  @for (a of ingediend(); track a.id) {\n                    <app-aanvraag-block animate.enter=\"app-item-enter\" animate.leave=\"app-item-leave\" [aanvraag]=\"a\" />\n                  }\n                </app-choice-list>\n              }\n            </section>\n          }\n\n          @if (store.pendingHerregistratie()) {\n            <app-alert type=\"info\" i18n=\"@@dashboard.pendingHerregistratie\">Uw herregistratie-aanvraag is in behandeling.</app-alert>\n          }\n\n          <app-async [data]=\"store.profile()\">\n            <ng-template appAsyncLoaded let-p>\n              @let tasks = tasksFor($any(p).registration);\n\n              <section>\n                @if (tasks.length) {\n                  <app-task-list class=\"app-section\" i18n-listHeading=\"@@dashboard.watMoetIkRegelen\" listHeading=\"Wat moet ik regelen\" [tasks]=\"tasks\" />\n                } @else {\n                  <app-heading [level]=\"2\" i18n=\"@@dashboard.watMoetIkRegelen\">Wat moet ik regelen</app-heading>\n                  <p class=\"app-text-subtle\" i18n=\"@@dashboard.nietsOpenstaan\">U heeft op dit moment niets openstaan.</p>\n                }\n              </section>\n\n              <section>\n                <app-heading [level]=\"2\" i18n=\"@@dashboard.mijnRegistratie\">Mijn registratie</app-heading>\n                <div class=\"app-section\">\n                  <app-registration-summary [reg]=\"$any(p).registration\" />\n                </div>\n                <app-data-block class=\"app-section\" i18n-heading=\"@@dashboard.persoonsgegevens\" heading=\"Persoonsgegevens (BRP)\">\n                  <div app-data-row i18n-key=\"@@dashboard.straat\" key=\"Straat\" [value]=\"$any(p).person.adres.straat\"></div>\n                  <div app-data-row i18n-key=\"@@dashboard.postcode\" key=\"Postcode\" [value]=\"$any(p).person.adres.postcode\"></div>\n                  <div app-data-row i18n-key=\"@@dashboard.woonplaats\" key=\"Woonplaats\" [value]=\"$any(p).person.adres.woonplaats\"></div>\n                </app-data-block>\n              </section>\n            </ng-template>\n            <ng-template appAsyncLoading>\n              <app-skeleton height=\"2.5rem\" [count]=\"6\" />\n            </ng-template>\n          </app-async>\n\n          <section>\n            <app-heading [level]=\"2\" i18n=\"@@dashboard.specialismen\">Specialismen en aantekeningen</app-heading>\n            <div class=\"app-section\">\n              <app-async [data]=\"store.aantekeningen()\">\n                <ng-template appAsyncLoaded let-r>\n                  <app-registration-table [rows]=\"$any(r)\" />\n                </ng-template>\n                <ng-template appAsyncLoading>\n                  <app-skeleton height=\"2.5rem\" [count]=\"3\" />\n                </ng-template>\n                <ng-template appAsyncEmpty>\n                  <p class=\"app-text-subtle\" i18n=\"@@dashboard.geenSpecialismen\">U heeft nog geen specialismen of aantekeningen.</p>\n                </ng-template>\n              </app-async>\n            </div>\n          </section>\n\n          <section>\n            <app-heading [level]=\"2\" i18n=\"@@dashboard.watWiltUDoen\">Wat wilt u doen?</app-heading>\n            <app-application-list class=\"app-section\">\n              @for (a of acties; track a.to) {\n                <app-application-link [heading]=\"a.titel\" [subtitle]=\"a.tekst\" [cta]=\"a.actie\" [to]=\"a.to\" />\n              }\n            </app-application-list>\n          </section>\n        </div>\n    </app-page-shell>\n  `,\n})\nexport class DashboardPage {\n  protected store = inject(BigProfileStore);\n  private apps = inject(ApplicationsStore);\n  private router = inject(Router);\n\n  constructor() {\n    // Re-fetch on each visit so server-computed auto-approval transitions show up\n    // (Concept → In behandeling → Goedgekeurd after the processing window).\n    this.apps.reload();\n  }\n\n  /** The user's applications, sorted Concept → In behandeling → resolved. Empty →\n      the\"Mijn aanvragen\" section is hidden (see template). */\n  protected aanvragen = computed<Aanvraag[]>(() => {\n    const rd = this.apps.applications();\n    if (rd.tag !== 'Success') return [];\n    const order: Record<Aanvraag['status']['tag'], number> = { Concept: 0, InBehandeling: 1, Goedgekeurd: 2, Afgewezen: 2 };\n    return rd.value.slice().sort((a, b) => order[a.status.tag] - order[b.status.tag]);\n  });\n  /** A Concept (\"lopende aanvraag\") renders as a melding above the list; the rest\n      as keuzelijst items — the two shapes need different HTML contexts. */\n  protected concepten = computed(() => this.aanvragen().filter((a) => a.status.tag === 'Concept'));\n  protected ingediend = computed(() => this.aanvragen().filter((a) => a.status.tag !== 'Concept'));\n\n  private readonly resumeRoutes: Record<AanvraagType, string> = {\n    registratie: '/registreren',\n    herregistratie: '/herregistratie',\n    intake: '/intake',\n  };\n  protected resume(a: Aanvraag) {\n    void this.router.navigate([this.resumeRoutes[a.type]], { queryParams: { aanvraag: a.id } });\n  }\n  protected cancelAanvraag(a: Aanvraag) {\n    void this.apps.cancel(a.id);\n  }\n\n  /** Server-computed eligibility (rendered, not recomputed). */\n  private readonly eligible = computed(() => {\n    const d = this.store.decisions();\n    return d.tag === 'Success' && d.value.eligibleForHerregistratie;\n  });\n\n  protected tasksFor(reg: Registration) {\n    return tasksFromProfile(reg, this.eligible());\n  }\n\n  /** Primary transactional actions, as an \"aanvragen\" list (see CIBG's\n      componenten/aanvragen). The core portal sections live in the header nav now;\n      the teaching pages (concepts/brief) are only reachable from here. */\n  protected readonly acties = [\n    { to: '/registreren', titel: $localize`:@@dashboard.actie.inschrijven.titel:Inschrijven`, tekst: $localize`:@@dashboard.actie.inschrijven.tekst:Schrijf u in in het BIG-register via de registratiewizard.`, actie: $localize`:@@dashboard.actie.inschrijven.actie:Start inschrijving` },\n    { to: '/herregistratie', titel: $localize`:@@dashboard.actie.herregistratie.titel:Herregistratie aanvragen`, tekst: $localize`:@@dashboard.actie.herregistratie.tekst:Verleng uw registratie voor de komende periode.`, actie: $localize`:@@dashboard.actie.herregistratie.actie:Vraag aan` },\n    { to: '/intake', titel: $localize`:@@dashboard.actie.intake.titel:Herregistratie-intake`, tekst: $localize`:@@dashboard.actie.intake.tekst:Vragenlijst met vertakkingen.`, actie: $localize`:@@dashboard.actie.intake.actie:Start intake` },\n    { to: '/registratie', titel: $localize`:@@dashboard.actie.wijzigen.titel:Gegevens wijzigen`, tekst: $localize`:@@dashboard.actie.wijzigen.tekst:Bekijk uw gegevens of geef een wijziging door.`, actie: $localize`:@@dashboard.actie.wijzigen.actie:Bekijk gegevens` },\n    { to: '/concepts', titel: $localize`:@@dashboard.actie.concepten.titel:Functionele patronen`, tekst: $localize`:@@dashboard.actie.concepten.tekst:Bekijk de FP/TEA-bouwstenen van deze POC.`, actie: $localize`:@@dashboard.actie.concepten.actie:Bekijk patronen` },\n    { to: '/brief', titel: $localize`:@@dashboard.actie.brief.titel:Brief opstellen`, tekst: $localize`:@@dashboard.actie.brief.tekst:Stel een brief samen uit vaste en vrije onderdelen.`, actie: $localize`:@@dashboard.actie.brief.actie:Start brief` },\n  ];\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 117
            },
            "extends": []
        },
        {
            "name": "DataBlockComponent",
            "id": "component-DataBlockComponent-3c7b0265fe8f84bb954cb85c2e100e2b591cf5da8ccbc0d65db14c3322de61e525f9b27e7e40e2e7deab456169cf8540bbd047a3b59fc5d7629a6c93e0481d90",
            "file": "src/app/shared/ui/data-block/data-block.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-data-block",
            "styleUrls": [],
            "styles": [],
            "template": "@if (heading()) { <app-heading [level]=\"level()\">{{ heading() }}</app-heading> }\n<div class=\"data-block\" [class.data-block--stacked]=\"stacked()\">\n  <div class=\"block-wrapper\">\n    <dl class=\"mb-0\" [attr.aria-label]=\"ariaLabel() || null\">\n      <ng-content />\n    </dl>\n  </div>\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "ariaLabel",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Accessible name for the <code>&lt;dl&gt;</code> when there is no visible heading.</p>\n",
                    "line": 32,
                    "rawdescription": "\nAccessible name for the `<dl>` when there is no visible heading.",
                    "required": false
                },
                {
                    "name": "heading",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 26,
                    "required": false
                },
                {
                    "name": "level",
                    "defaultValue": "3",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "1 | 2 | 3 | 4 | 5",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Heading level when <code>heading</code> is set (default h3, matching <code>app-card</code>).</p>\n",
                    "line": 28,
                    "rawdescription": "\nHeading level when `heading` is set (default h3, matching `app-card`).",
                    "required": false
                },
                {
                    "name": "stacked",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Stacks label above value (<code>.data-block--stacked</code>) for long content.</p>\n",
                    "line": 30,
                    "rawdescription": "\nStacks label above value (`.data-block--stacked`) for long content.",
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "HeadingComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Molecule: CIBG Huisstijl <strong>Datablock</strong> (designsystem.cibg.nl/componenten/datablock)\n— THE way to show user/application data. A grey <code>.data-block</code> surface holds a white\n<code>.block-wrapper</code> panel with a <code>&lt;dl&gt;</code> of projected <code>&lt;app-data-row&gt;</code>s. Use <code>stacked</code>\n(<code>.data-block--stacked</code>) when labels/values are long and should stack. Replaces the\n<code>app-card + dl</code> idiom for data views (the datablock carries its own surface, so it is\nNOT wrapped in an <code>app-card</code> — see WP-12). When there is no visible <code>heading</code>, pass an\n<code>ariaLabel</code> so the definition list is announced.</p>\n",
            "rawdescription": "\nMolecule: CIBG Huisstijl **Datablock** (designsystem.cibg.nl/componenten/datablock)\n— THE way to show user/application data. A grey `.data-block` surface holds a white\n`.block-wrapper` panel with a `<dl>` of projected `<app-data-row>`s. Use `stacked`\n(`.data-block--stacked`) when labels/values are long and should stack. Replaces the\n`app-card + dl` idiom for data views (the datablock carries its own surface, so it is\nNOT wrapped in an `app-card` — see WP-12). When there is no visible `heading`, pass an\n`ariaLabel` so the definition list is announced.",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\nimport { HeadingComponent } from '@shared/ui/heading/heading.component';\n\n/** Molecule: CIBG Huisstijl **Datablock** (designsystem.cibg.nl/componenten/datablock)\n    — THE way to show user/application data. A grey `.data-block` surface holds a white\n    `.block-wrapper` panel with a `<dl>` of projected `<app-data-row>`s. Use `stacked`\n    (`.data-block--stacked`) when labels/values are long and should stack. Replaces the\n    `app-card + dl` idiom for data views (the datablock carries its own surface, so it is\n    NOT wrapped in an `app-card` — see WP-12). When there is no visible `heading`, pass an\n    `ariaLabel` so the definition list is announced. */\n@Component({\n  selector: 'app-data-block',\n  imports: [HeadingComponent],\n  template: `\n    @if (heading()) { <app-heading [level]=\"level()\">{{ heading() }}</app-heading> }\n    <div class=\"data-block\" [class.data-block--stacked]=\"stacked()\">\n      <div class=\"block-wrapper\">\n        <dl class=\"mb-0\" [attr.aria-label]=\"ariaLabel() || null\">\n          <ng-content />\n        </dl>\n      </div>\n    </div>\n  `,\n})\nexport class DataBlockComponent {\n  heading = input('');\n  /** Heading level when `heading` is set (default h3, matching `app-card`). */\n  level = input<1 | 2 | 3 | 4 | 5>(3);\n  /** Stacks label above value (`.data-block--stacked`) for long content. */\n  stacked = input(false);\n  /** Accessible name for the `<dl>` when there is no visible heading. */\n  ariaLabel = input('');\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "DataRowComponent",
            "id": "component-DataRowComponent-700c998e97f974b95a9a47cee45594ae1f691ed43d96d502c59f3950984ca9e11ba486c6f83df19afeb2923705a502d1f91edc876f2e7c0037ca1d71ab363243",
            "file": "src/app/shared/ui/data-row/data-row.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "host": {},
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "div[app-data-row]",
            "styleUrls": [],
            "styles": [],
            "template": "<dt class=\"col-md-4\">{{ key() }}</dt>\n<dd class=\"col-md-8\"><ng-content>{{ value() }}</ng-content></dd>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "key",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 21,
                    "required": true
                },
                {
                    "name": "value",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | null",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22,
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Molecule: one key/value row inside a CIBG Huisstijl <strong>Datablock</strong> (see\n<code>data-block.component.ts</code>) — the row primitive of the datablock/<code>controlestap</code>\ndata summary. Used on a <code>&lt;div&gt;</code> so the <code>&lt;dl&gt;</code>&#39;s direct child is a native element\n(the HTML5.1 <code>dl &gt; div &gt; dt + dd</code> grouping), which keeps the definition list\naxe-clean — a bare custom element between <code>&lt;dl&gt;</code> and its <code>&lt;dt&gt;/&lt;dd&gt;</code> trips axe&#39;s\ndefinition-list rule regardless of <code>display:contents</code>. The host is the Bootstrap\n<code>.row</code>; <code>dt.col-md-4</code>/<code>dd.col-md-8</code> give the label/value widths. Wrap several in a\n<code>&lt;dl class=&quot;mb-0&quot;&gt;</code> (a <code>&lt;app-data-block&gt;</code>). Project custom content (e.g. a badge)\ninto the <code>&lt;dd&gt;</code> via <code>&lt;ng-content&gt;</code>.</p>\n",
            "rawdescription": "\nMolecule: one key/value row inside a CIBG Huisstijl **Datablock** (see\n`data-block.component.ts`) — the row primitive of the datablock/`controlestap`\ndata summary. Used on a `<div>` so the `<dl>`'s direct child is a native element\n(the HTML5.1 `dl > div > dt + dd` grouping), which keeps the definition list\naxe-clean — a bare custom element between `<dl>` and its `<dt>/<dd>` trips axe's\ndefinition-list rule regardless of `display:contents`. The host is the Bootstrap\n`.row`; `dt.col-md-4`/`dd.col-md-8` give the label/value widths. Wrap several in a\n`<dl class=\"mb-0\">` (a `<app-data-block>`). Project custom content (e.g. a badge)\ninto the `<dd>` via `<ng-content>`.",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\n\n/** Molecule: one key/value row inside a CIBG Huisstijl **Datablock** (see\n    `data-block.component.ts`) — the row primitive of the datablock/`controlestap`\n    data summary. Used on a `<div>` so the `<dl>`'s direct child is a native element\n    (the HTML5.1 `dl > div > dt + dd` grouping), which keeps the definition list\n    axe-clean — a bare custom element between `<dl>` and its `<dt>/<dd>` trips axe's\n    definition-list rule regardless of `display:contents`. The host is the Bootstrap\n    `.row`; `dt.col-md-4`/`dd.col-md-8` give the label/value widths. Wrap several in a\n    `<dl class=\"mb-0\">` (a `<app-data-block>`). Project custom content (e.g. a badge)\n    into the `<dd>` via `<ng-content>`. */\n@Component({\n  selector: 'div[app-data-row]',\n  host: { class: 'row' },\n  template: `\n    <dt class=\"col-md-4\">{{ key() }}</dt>\n    <dd class=\"col-md-8\"><ng-content>{{ value() }}</ng-content></dd>\n  `,\n})\nexport class DataRowComponent {\n  key = input.required<string>();\n  value = input<string | null>('');\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "DebugStateComponent",
            "id": "component-DebugStateComponent-4d92b8b723c91f4f77df3e9e6cc3ffdeac111b194fa20c43c102806cebfc808a4780b15f2e791a62afa6de3c848cb51d55a95c864e658e093209a2dd6165a6cc",
            "file": "src/app/shared/ui/debug-state/debug-state.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-debug-state",
            "styleUrls": [],
            "styles": [
                "\n    .fab{position:fixed;bottom:1rem;right:1rem;z-index:9999;font:600 12px/1 monospace;\n      background:var(--app-devpanel-bg);color:var(--app-devpanel-accent);\n      border:var(--rhc-border-width-sm) solid var(--app-devpanel-border);border-radius:4px;\n      padding:.5rem .75rem;cursor:pointer}\n    .panel{position:fixed;bottom:3.25rem;right:1rem;z-index:9999;width:min(90vw,28rem);\n      max-height:70vh;overflow:auto;background:var(--app-devpanel-bg);color:var(--app-devpanel-fg);\n      border:var(--rhc-border-width-sm) solid var(--app-devpanel-border);\n      border-radius:6px;box-shadow:0 6px 24px var(--app-devpanel-shadow)}\n    .panel pre{margin:0;padding:.75rem;font:12px/1.5 monospace;white-space:pre-wrap;\n      word-break:break-word}\n  "
            ],
            "template": "@if (isDev) {\n  <button type=\"button\" class=\"fab\" (click)=\"toggle()\">\n    {{ visible() ? '× state' : '⚙ state' }}\n  </button>\n  @if (visible()) {\n    <div class=\"panel\"><pre>{{ snapshot() | json }}</pre></div>\n  }\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "injector",
                    "defaultValue": "inject(Injector)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 50,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "isDev",
                    "defaultValue": "isDevMode()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 46,
                    "modifierKind": [
                        124,
                        148
                    ]
                },
                {
                    "name": "profileStore",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "BigProfileStore",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 53,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "session",
                    "defaultValue": "inject(SessionStore)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 49,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "snapshot",
                    "defaultValue": "computed(() => ({\n    session: maskSession(this.session.session()),\n    profile: this.profileStore ? map(this.profileStore.profile(), redactProfile) : undefined,\n    decisions: this.profileStore?.decisions(),\n    aantekeningen: this.profileStore?.aantekeningen(),\n    pendingHerregistratie: this.profileStore?.pendingHerregistratie(),\n  }))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 57,
                    "modifierKind": [
                        124,
                        148
                    ]
                },
                {
                    "name": "visible",
                    "defaultValue": "signal(false)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 47,
                    "modifierKind": [
                        124,
                        148
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "toggle",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 65,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "JsonPipe",
                    "type": "pipe"
                }
            ],
            "description": "<p>Dev-only &quot;show the current Model&quot; panel (Elm-debugger style, read-only).\nObserves the root singletons and renders them via the json pipe. Never a\nproduct feature: the whole template is gated by isDevMode(), so it does not\nrender and is unreachable in a production build.</p>\n<p>ponytail: dev tool — intentionally off-theme (a dark code-editor look, not\nCIBG). Its palette lives as --app-devpanel-* tokens in styles.scss so this file\nstays hex-free (check:tokens has no holes), while still reading as a tool.</p>\n",
            "rawdescription": "\n\nDev-only \"show the current Model\" panel (Elm-debugger style, read-only).\nObserves the root singletons and renders them via the json pipe. Never a\nproduct feature: the whole template is gated by isDevMode(), so it does not\nrender and is unreachable in a production build.\n\nponytail: dev tool — intentionally off-theme (a dark code-editor look, not\nCIBG). Its palette lives as --app-devpanel-* tokens in styles.scss so this file\nstays hex-free (check:tokens has no holes), while still reading as a tool.\n",
            "type": "component",
            "sourceCode": "import { Component, Injector, computed, inject, isDevMode, signal } from '@angular/core';\nimport { JsonPipe } from '@angular/common';\nimport { SessionStore } from '@auth/application/session.store';\nimport { Session } from '@auth/domain/session';\nimport { BigProfileStore } from '@registratie/application/big-profile.store';\nimport { map } from '@shared/application/remote-data';\nimport { maskBsn, redactProfile } from './mask';\n\n/**\n * Dev-only \"show the current Model\" panel (Elm-debugger style, read-only).\n * Observes the root singletons and renders them via the json pipe. Never a\n * product feature: the whole template is gated by isDevMode(), so it does not\n * render and is unreachable in a production build.\n *\n * ponytail: dev tool — intentionally off-theme (a dark code-editor look, not\n * CIBG). Its palette lives as --app-devpanel-* tokens in styles.scss so this file\n * stays hex-free (check:tokens has no holes), while still reading as a tool.\n */\n@Component({\n  selector: 'app-debug-state',\n  imports: [JsonPipe],\n  styles: [`\n    .fab{position:fixed;bottom:1rem;right:1rem;z-index:9999;font:600 12px/1 monospace;\n      background:var(--app-devpanel-bg);color:var(--app-devpanel-accent);\n      border:var(--rhc-border-width-sm) solid var(--app-devpanel-border);border-radius:4px;\n      padding:.5rem .75rem;cursor:pointer}\n    .panel{position:fixed;bottom:3.25rem;right:1rem;z-index:9999;width:min(90vw,28rem);\n      max-height:70vh;overflow:auto;background:var(--app-devpanel-bg);color:var(--app-devpanel-fg);\n      border:var(--rhc-border-width-sm) solid var(--app-devpanel-border);\n      border-radius:6px;box-shadow:0 6px 24px var(--app-devpanel-shadow)}\n    .panel pre{margin:0;padding:.75rem;font:12px/1.5 monospace;white-space:pre-wrap;\n      word-break:break-word}\n  `],\n  template: `\n    @if (isDev) {\n      <button type=\"button\" class=\"fab\" (click)=\"toggle()\">\n        {{ visible() ? '× state' : '⚙ state' }}\n      </button>\n      @if (visible()) {\n        <div class=\"panel\"><pre>{{ snapshot() | json }}</pre></div>\n      }\n    }\n  `,\n})\nexport class DebugStateComponent {\n  protected readonly isDev = isDevMode();\n  protected readonly visible = signal(false);\n\n  private session = inject(SessionStore);\n  private injector = inject(Injector);\n  // Resolved on first open only — BigProfileStore's httpResources fetch eagerly\n  // on construction, so we must not instantiate it until the dev asks to look.\n  private profileStore?: BigProfileStore;\n\n  // PII is redacted/masked here (see mask.ts): the panel inspects state SHAPE,\n  // never personal data — a deliberate habit for a PII-handling app.\n  protected readonly snapshot = computed(() => ({\n    session: maskSession(this.session.session()),\n    profile: this.profileStore ? map(this.profileStore.profile(), redactProfile) : undefined,\n    decisions: this.profileStore?.decisions(),\n    aantekeningen: this.profileStore?.aantekeningen(),\n    pendingHerregistratie: this.profileStore?.pendingHerregistratie(),\n  }));\n\n  toggle(): void {\n    if (!this.visible()) this.profileStore ??= this.injector.get(BigProfileStore);\n    this.visible.update((v) => !v);\n  }\n}\n\nfunction maskSession(s: Session | null): Session | null {\n  return s ? { ...s, bsn: maskBsn(s.bsn) } : null;\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    .fab{position:fixed;bottom:1rem;right:1rem;z-index:9999;font:600 12px/1 monospace;\n      background:var(--app-devpanel-bg);color:var(--app-devpanel-accent);\n      border:var(--rhc-border-width-sm) solid var(--app-devpanel-border);border-radius:4px;\n      padding:.5rem .75rem;cursor:pointer}\n    .panel{position:fixed;bottom:3.25rem;right:1rem;z-index:9999;width:min(90vw,28rem);\n      max-height:70vh;overflow:auto;background:var(--app-devpanel-bg);color:var(--app-devpanel-fg);\n      border:var(--rhc-border-width-sm) solid var(--app-devpanel-border);\n      border-radius:6px;box-shadow:0 6px 24px var(--app-devpanel-shadow)}\n    .panel pre{margin:0;padding:.75rem;font:12px/1.5 monospace;white-space:pre-wrap;\n      word-break:break-word}\n  \n",
            "extends": []
        },
        {
            "name": "DeliveryChannelToggleComponent",
            "id": "component-DeliveryChannelToggleComponent-60d45f2b520dcc3c5b1cf804326a017ccff35af736561e44174ebb20497ad5f7f6379912725753df12f2cf176cbcd7975ba806d625d6dd35df0d9c161f8b4198",
            "file": "src/app/shared/ui/upload/delivery-channel-toggle/delivery-channel-toggle.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-delivery-channel-toggle",
            "styleUrls": [],
            "styles": [
                "\n    .radio-option {\n      display: flex;\n      align-items: center;\n      gap: var(--rhc-space-max-md);\n      padding-block: var(--rhc-space-max-sm);\n      margin: 0;\n    }\n    .radio-option .form-check-input { margin: 0; float: none; }\n  "
            ],
            "template": "<div role=\"radiogroup\">\n  @for (opt of options; track opt.value) {\n    <label class=\"form-check-label radio-option\">\n      <input\n        class=\"form-check-input\"\n        type=\"radio\"\n        [name]=\"name()\"\n        [value]=\"opt.value\"\n        [checked]=\"channel() === opt.value\"\n        [disabled]=\"disabled()\"\n        (change)=\"channelChange.emit(opt.value)\" />\n      {{ opt.label }}\n    </label>\n  }\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "channel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DeliveryChannel",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 37,
                    "required": true
                },
                {
                    "name": "disabled",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 39,
                    "required": false
                },
                {
                    "name": "name",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 38,
                    "required": true
                }
            ],
            "outputsClass": [
                {
                    "name": "channelChange",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DeliveryChannel",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 41,
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "options",
                    "defaultValue": "[\n    { value: 'digital', label: $localize`:@@upload.channel.digital:Digitaal uploaden` },\n    { value: 'post', label: $localize`:@@upload.channel.post:Per post nasturen` },\n  ]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ReadonlyArray<literal type>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 43,
                    "modifierKind": [
                        124,
                        148
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Atom: choose how a document is delivered — uploaded digitally or sent by post.\nThin wrapper over the Utrecht/RHC radio CSS. Pure UI: emits the chosen channel.</p>\n",
            "rawdescription": "\nAtom: choose how a document is delivered — uploaded digitally or sent by post.\nThin wrapper over the Utrecht/RHC radio CSS. Pure UI: emits the chosen channel.",
            "type": "component",
            "sourceCode": "import { Component, input, output } from '@angular/core';\nimport type { DeliveryChannel } from '@shared/upload/upload.machine';\n\n/** Atom: choose how a document is delivered — uploaded digitally or sent by post.\n    Thin wrapper over the Utrecht/RHC radio CSS. Pure UI: emits the chosen channel. */\n@Component({\n  selector: 'app-delivery-channel-toggle',\n  styles: [`\n    .radio-option {\n      display: flex;\n      align-items: center;\n      gap: var(--rhc-space-max-md);\n      padding-block: var(--rhc-space-max-sm);\n      margin: 0;\n    }\n    .radio-option .form-check-input { margin: 0; float: none; }\n  `],\n  template: `\n    <div role=\"radiogroup\">\n      @for (opt of options; track opt.value) {\n        <label class=\"form-check-label radio-option\">\n          <input\n            class=\"form-check-input\"\n            type=\"radio\"\n            [name]=\"name()\"\n            [value]=\"opt.value\"\n            [checked]=\"channel() === opt.value\"\n            [disabled]=\"disabled()\"\n            (change)=\"channelChange.emit(opt.value)\" />\n          {{ opt.label }}\n        </label>\n      }\n    </div>\n  `,\n})\nexport class DeliveryChannelToggleComponent {\n  channel = input.required<DeliveryChannel>();\n  name = input.required<string>();\n  disabled = input(false);\n\n  channelChange = output<DeliveryChannel>();\n\n  protected readonly options: ReadonlyArray<{ value: DeliveryChannel; label: string }> = [\n    { value: 'digital', label: $localize`:@@upload.channel.digital:Digitaal uploaden` },\n    { value: 'post', label: $localize`:@@upload.channel.post:Per post nasturen` },\n  ];\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    .radio-option {\n      display: flex;\n      align-items: center;\n      gap: var(--rhc-space-max-md);\n      padding-block: var(--rhc-space-max-sm);\n      margin: 0;\n    }\n    .radio-option .form-check-input { margin: 0; float: none; }\n  \n",
            "extends": []
        },
        {
            "name": "DiagnosticsPanelComponent",
            "id": "component-DiagnosticsPanelComponent-bff4b084f9d32086cf5f2242d719b1f6d80d005f73feeb7118a549856b24ee7f7d878a54a266021ca6f121351e18bac8c2b958017ad9f59fb89e1fda91414a71",
            "file": "src/app/brief/ui/diagnostics-panel/diagnostics-panel.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-diagnostics-panel",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:block}\n    ul{margin:0;padding-inline-start:1.1rem;display:grid;gap:0.15rem}\n    button{background:none;border:0;padding:0;color:var(--rhc-color-foreground-link);cursor:pointer;text-align:start;text-decoration:underline}\n  "
            ],
            "template": "@if (errors().length) {\n  <app-alert type=\"error\">\n    <strong>{{ errorsTitle() }}</strong>\n    <ul>\n      @for (d of errors(); track $index) { <li><button type=\"button\" (click)=\"locate.emit(d)\">{{ d.message }}</button></li> }\n    </ul>\n  </app-alert>\n}\n@if (warnings().length) {\n  <app-alert type=\"warning\">\n    <strong>{{ warningsTitle() }}</strong>\n    <ul>\n      @for (d of warnings(); track $index) { <li><button type=\"button\" (click)=\"locate.emit(d)\">{{ d.message }}</button></li> }\n    </ul>\n  </app-alert>\n}\n@if (!errors().length && !warnings().length) {\n  <app-alert type=\"ok\">{{ cleanText() }}</app-alert>\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "cleanText",
                    "defaultValue": "$localize`:@@brief.diag.clean:Geen problemen gevonden in de velden.`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 44,
                    "required": false
                },
                {
                    "name": "diagnostics",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "readonly Diagnostic[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 39,
                    "required": false
                },
                {
                    "name": "errorsTitle",
                    "defaultValue": "$localize`:@@brief.diag.errors:Op te lossen voor indienen/versturen:`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 42,
                    "required": false
                },
                {
                    "name": "warningsTitle",
                    "defaultValue": "$localize`:@@brief.diag.warnings:Aandachtspunten:`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 43,
                    "required": false
                }
            ],
            "outputsClass": [
                {
                    "name": "locate",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Diagnostic",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 40,
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "errors",
                    "defaultValue": "computed(() => this.diagnostics().filter((d) => d.severity === 'error'))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 46,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "warnings",
                    "defaultValue": "computed(() => this.diagnostics().filter((d) => d.severity === 'warning'))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 47,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "AlertComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Molecule: lists all letter diagnostics grouped by severity. Errors block\nsave/send; warnings (deprecated, unresolved-at-send) are surfaced but allowed.\nFed by a <code>computed()</code> over the letter content — never stored.</p>\n",
            "rawdescription": "\nMolecule: lists all letter diagnostics grouped by severity. Errors block\nsave/send; warnings (deprecated, unresolved-at-send) are surfaced but allowed.\nFed by a `computed()` over the letter content — never stored.",
            "type": "component",
            "sourceCode": "import { Component, computed, input, output } from '@angular/core';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { Diagnostic } from '@brief/domain/placeholders';\n\n/** Molecule: lists all letter diagnostics grouped by severity. Errors block\n    save/send; warnings (deprecated, unresolved-at-send) are surfaced but allowed.\n    Fed by a `computed()` over the letter content — never stored. */\n@Component({\n  selector: 'app-diagnostics-panel',\n  imports: [AlertComponent],\n  styles: [`\n    :host{display:block}\n    ul{margin:0;padding-inline-start:1.1rem;display:grid;gap:0.15rem}\n    button{background:none;border:0;padding:0;color:var(--rhc-color-foreground-link);cursor:pointer;text-align:start;text-decoration:underline}\n  `],\n  template: `\n    @if (errors().length) {\n      <app-alert type=\"error\">\n        <strong>{{ errorsTitle() }}</strong>\n        <ul>\n          @for (d of errors(); track $index) { <li><button type=\"button\" (click)=\"locate.emit(d)\">{{ d.message }}</button></li> }\n        </ul>\n      </app-alert>\n    }\n    @if (warnings().length) {\n      <app-alert type=\"warning\">\n        <strong>{{ warningsTitle() }}</strong>\n        <ul>\n          @for (d of warnings(); track $index) { <li><button type=\"button\" (click)=\"locate.emit(d)\">{{ d.message }}</button></li> }\n        </ul>\n      </app-alert>\n    }\n    @if (!errors().length && !warnings().length) {\n      <app-alert type=\"ok\">{{ cleanText() }}</app-alert>\n    }\n  `,\n})\nexport class DiagnosticsPanelComponent {\n  diagnostics = input<readonly Diagnostic[]>([]);\n  locate = output<Diagnostic>();\n\n  errorsTitle = input($localize`:@@brief.diag.errors:Op te lossen voor indienen/versturen:`);\n  warningsTitle = input($localize`:@@brief.diag.warnings:Aandachtspunten:`);\n  cleanText = input($localize`:@@brief.diag.clean:Geen problemen gevonden in de velden.`);\n\n  protected errors = computed(() => this.diagnostics().filter((d) => d.severity === 'error'));\n  protected warnings = computed(() => this.diagnostics().filter((d) => d.severity === 'warning'));\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:block}\n    ul{margin:0;padding-inline-start:1.1rem;display:grid;gap:0.15rem}\n    button{background:none;border:0;padding:0;color:var(--rhc-color-foreground-link);cursor:pointer;text-align:start;text-decoration:underline}\n  \n",
            "extends": []
        },
        {
            "name": "DocumentCategoryComponent",
            "id": "component-DocumentCategoryComponent-3505c70a134e5d8833162f272b2f85d79d4ae35a2d8409efe4d6b85ca8b59d8a18459c2832c252f931a584b6c679e782a6c751540f94ccd2e9d6a8743592dfc1",
            "file": "src/app/shared/ui/upload/document-category/document-category.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-document-category",
            "styleUrls": [],
            "styles": [
                "\n    :host { display: block; }\n    .label { font-weight: var(--rhc-text-font-weight-semi-bold); margin-block-end: var(--rhc-space-max-sm); }\n    .req { font-weight: var(--rhc-text-font-weight-regular); color: var(--rhc-color-foreground-subtle); }\n    .desc { color: var(--rhc-color-foreground-subtle); font-size: var(--rhc-text-font-size-sm); margin-block-end: var(--rhc-space-max-md); }\n    .uploads { display: flex; flex-direction: column; gap: var(--rhc-space-max-md); margin-block-start: var(--rhc-space-max-md); }\n    .rejection {\n      color: var(--rhc-color-foreground-default);\n      font-weight: var(--rhc-text-font-weight-semi-bold);\n      margin-block-start: var(--rhc-space-max-sm);\n      border-inline-start: var(--rhc-border-width-md) solid var(--rhc-color-rood-500);\n      padding-inline-start: var(--rhc-space-max-md);\n    }\n  "
            ],
            "template": "<div class=\"label\">\n  {{ category().label }}@if (category().required) { <span class=\"req\" i18n=\"@@upload.category.required\">(verplicht)</span> }\n</div>\n@if (category().description) {\n  <div class=\"desc\">{{ category().description }}</div>\n}\n\n@if (category().allowPostDelivery) {\n  <app-delivery-channel-toggle\n    [channel]=\"channel()\"\n    [name]=\"category().categoryId + '-channel'\"\n    (channelChange)=\"channelChange.emit($event)\" />\n}\n\n@if (channel() === 'digital') {\n  <app-file-input\n    [inputId]=\"category().categoryId + '-file'\"\n    [label]=\"fileInputLabel()\"\n    [accept]=\"category().acceptedTypes\"\n    [multiple]=\"category().multiple\"\n    (filesSelected)=\"fileSelected.emit($event)\" />\n\n  <div class=\"uploads\">\n    @for (u of uploads(); track u.localId) {\n      <app-single-upload\n        animate.enter=\"app-item-enter\"\n        animate.leave=\"app-item-leave\"\n        [upload]=\"u\"\n        [previewUrlFor]=\"previewUrlFor()\"\n        (remove)=\"onRemove(u)\"\n        (retry)=\"retryUpload.emit(u.localId)\" />\n    }\n  </div>\n\n  @if (rejection()) {\n    <div class=\"rejection\" role=\"alert\">{{ rejection() }}</div>\n  }\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "category",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DocumentCategory",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 69,
                    "required": true
                },
                {
                    "name": "channel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DeliveryChannel",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 71,
                    "required": true
                },
                {
                    "name": "previewUrlFor",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "(documentId: string) => string | undefined",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 73,
                    "required": false
                },
                {
                    "name": "rejection",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 72,
                    "required": false
                },
                {
                    "name": "uploads",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Upload[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 70,
                    "required": true
                }
            ],
            "outputsClass": [
                {
                    "name": "channelChange",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DeliveryChannel",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 82,
                    "required": false
                },
                {
                    "name": "deleteUpload",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "{ localId: string; documentId: string }",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 81,
                    "required": false
                },
                {
                    "name": "fileSelected",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "File[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 78,
                    "required": false
                },
                {
                    "name": "removeUpload",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 79,
                    "required": false
                },
                {
                    "name": "retryUpload",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 80,
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "fileInputLabel",
                    "defaultValue": "computed(() => $localize`:@@upload.fileInput.labelFor:Bestand kiezen voor ${this.category().label}:category:`)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Accessible name for the file picker, e.g. &quot;Bestand kiezen voor Diploma&quot;.</p>\n",
                    "line": 76,
                    "rawdescription": "\nAccessible name for the file picker, e.g. \"Bestand kiezen voor Diploma\".",
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "onRemove",
                    "args": [
                        {
                            "name": "u",
                            "type": "Upload",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 84,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "u",
                            "type": "Upload",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "DeliveryChannelToggleComponent",
                    "type": "component"
                },
                {
                    "name": "FileInputComponent",
                    "type": "component"
                },
                {
                    "name": "SingleUploadComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Organism: one document category — its label/description, an optional delivery\nchannel toggle, and (when digital) a file picker plus the list of uploads. Pure\nUI: emits selection/removal/retry/delete and channel changes; no HTTP or rules.</p>\n",
            "rawdescription": "\nOrganism: one document category — its label/description, an optional delivery\nchannel toggle, and (when digital) a file picker plus the list of uploads. Pure\nUI: emits selection/removal/retry/delete and channel changes; no HTTP or rules.",
            "type": "component",
            "sourceCode": "import { Component, computed, input, output } from '@angular/core';\nimport type { DeliveryChannel, DocumentCategory, Upload } from '@shared/upload/upload.machine';\nimport { DeliveryChannelToggleComponent } from '../delivery-channel-toggle/delivery-channel-toggle.component';\nimport { FileInputComponent } from '../file-input/file-input.component';\nimport { SingleUploadComponent } from '../single-upload/single-upload.component';\n\n/** Organism: one document category — its label/description, an optional delivery\n    channel toggle, and (when digital) a file picker plus the list of uploads. Pure\n    UI: emits selection/removal/retry/delete and channel changes; no HTTP or rules. */\n@Component({\n  selector: 'app-document-category',\n  imports: [DeliveryChannelToggleComponent, FileInputComponent, SingleUploadComponent],\n  styles: [`\n    :host { display: block; }\n    .label { font-weight: var(--rhc-text-font-weight-semi-bold); margin-block-end: var(--rhc-space-max-sm); }\n    .req { font-weight: var(--rhc-text-font-weight-regular); color: var(--rhc-color-foreground-subtle); }\n    .desc { color: var(--rhc-color-foreground-subtle); font-size: var(--rhc-text-font-size-sm); margin-block-end: var(--rhc-space-max-md); }\n    .uploads { display: flex; flex-direction: column; gap: var(--rhc-space-max-md); margin-block-start: var(--rhc-space-max-md); }\n    .rejection {\n      color: var(--rhc-color-foreground-default);\n      font-weight: var(--rhc-text-font-weight-semi-bold);\n      margin-block-start: var(--rhc-space-max-sm);\n      border-inline-start: var(--rhc-border-width-md) solid var(--rhc-color-rood-500);\n      padding-inline-start: var(--rhc-space-max-md);\n    }\n  `],\n  template: `\n    <div class=\"label\">\n      {{ category().label }}@if (category().required) { <span class=\"req\" i18n=\"@@upload.category.required\">(verplicht)</span> }\n    </div>\n    @if (category().description) {\n      <div class=\"desc\">{{ category().description }}</div>\n    }\n\n    @if (category().allowPostDelivery) {\n      <app-delivery-channel-toggle\n        [channel]=\"channel()\"\n        [name]=\"category().categoryId + '-channel'\"\n        (channelChange)=\"channelChange.emit($event)\" />\n    }\n\n    @if (channel() === 'digital') {\n      <app-file-input\n        [inputId]=\"category().categoryId + '-file'\"\n        [label]=\"fileInputLabel()\"\n        [accept]=\"category().acceptedTypes\"\n        [multiple]=\"category().multiple\"\n        (filesSelected)=\"fileSelected.emit($event)\" />\n\n      <div class=\"uploads\">\n        @for (u of uploads(); track u.localId) {\n          <app-single-upload\n            animate.enter=\"app-item-enter\"\n            animate.leave=\"app-item-leave\"\n            [upload]=\"u\"\n            [previewUrlFor]=\"previewUrlFor()\"\n            (remove)=\"onRemove(u)\"\n            (retry)=\"retryUpload.emit(u.localId)\" />\n        }\n      </div>\n\n      @if (rejection()) {\n        <div class=\"rejection\" role=\"alert\">{{ rejection() }}</div>\n      }\n    }\n  `,\n})\nexport class DocumentCategoryComponent {\n  category = input.required<DocumentCategory>();\n  uploads = input.required<Upload[]>();\n  channel = input.required<DeliveryChannel>();\n  rejection = input<string>();\n  previewUrlFor = input<(documentId: string) => string | undefined>();\n\n  /** Accessible name for the file picker, e.g. \"Bestand kiezen voor Diploma\". */\n  protected fileInputLabel = computed(() => $localize`:@@upload.fileInput.labelFor:Bestand kiezen voor ${this.category().label}:category:`);\n\n  fileSelected = output<File[]>();\n  removeUpload = output<string>();\n  retryUpload = output<string>();\n  deleteUpload = output<{ localId: string; documentId: string }>();\n  channelChange = output<DeliveryChannel>();\n\n  onRemove(u: Upload) {\n    if (u.status.type === 'complete') {\n      this.deleteUpload.emit({ localId: u.localId, documentId: u.status.documentId });\n    } else {\n      this.removeUpload.emit(u.localId);\n    }\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host { display: block; }\n    .label { font-weight: var(--rhc-text-font-weight-semi-bold); margin-block-end: var(--rhc-space-max-sm); }\n    .req { font-weight: var(--rhc-text-font-weight-regular); color: var(--rhc-color-foreground-subtle); }\n    .desc { color: var(--rhc-color-foreground-subtle); font-size: var(--rhc-text-font-size-sm); margin-block-end: var(--rhc-space-max-md); }\n    .uploads { display: flex; flex-direction: column; gap: var(--rhc-space-max-md); margin-block-start: var(--rhc-space-max-md); }\n    .rejection {\n      color: var(--rhc-color-foreground-default);\n      font-weight: var(--rhc-text-font-weight-semi-bold);\n      margin-block-start: var(--rhc-space-max-sm);\n      border-inline-start: var(--rhc-border-width-md) solid var(--rhc-color-rood-500);\n      padding-inline-start: var(--rhc-space-max-md);\n    }\n  \n",
            "extends": []
        },
        {
            "name": "DocumentChipComponent",
            "id": "component-DocumentChipComponent-bc28ccedea3cee5cc5a9fece88e4c6407ba8421f036d0f82b04406bd427ca89613e4dc81a01fddd0b0154ebd17eb7b59e01d5b5765707c7e32e0f8c2f89ae304",
            "file": "src/app/shared/ui/upload/document-chip/document-chip.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-document-chip",
            "styleUrls": [],
            "styles": [
                "\n    :host {\n      display: inline-flex;\n      align-items: center;\n      gap: var(--rhc-space-max-md);\n      padding-block: var(--rhc-space-max-sm);\n      padding-inline: var(--rhc-space-max-md);\n      border: var(--rhc-border-width-sm) solid var(--rhc-color-border-subtle);\n      border-radius: var(--rhc-border-radius-md);\n      background: var(--rhc-color-cool-grey-100);\n    }\n    .name { flex: 1; }\n    .action {\n      background: none;\n      border: none;\n      cursor: pointer;\n      padding: 0;\n      color: var(--rhc-color-foreground-link);\n      font: inherit;\n      text-decoration: underline;\n    }\n    .action:hover { color: var(--rhc-color-foreground-link-hover); }\n    a.action { display: inline-block; }\n  "
            ],
            "template": "<app-upload-status-icon [status]=\"status().type\" />\n<span class=\"name\">{{ fileName() }}</span>\n@if (previewUrl()) {\n  <a class=\"action\" [href]=\"previewUrl()\" target=\"_blank\" rel=\"noopener\" [attr.aria-label]=\"previewLabel\">\n    <span i18n=\"@@upload.chip.preview\">Voorbeeld / Download</span>\n  </a>\n}\n@if (status().type === 'failed') {\n  <button type=\"button\" class=\"action\" [attr.aria-label]=\"retryLabel\" (click)=\"retry.emit()\">\n    <span i18n=\"@@upload.chip.retry\">Opnieuw</span>\n  </button>\n}\n@if (status().type !== 'deleting') {\n  <button type=\"button\" class=\"action\" [attr.aria-label]=\"removeLabel\" (click)=\"remove.emit()\">\n    <span i18n=\"@@upload.chip.remove\">Verwijderen</span>\n  </button>\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "fileName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 55,
                    "required": true
                },
                {
                    "name": "previewUrl",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>When set, show a preview/download link (opens the stored bytes).</p>\n",
                    "line": 58,
                    "rawdescription": "\nWhen set, show a preview/download link (opens the stored bytes).",
                    "required": false
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UploadStatus",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 56,
                    "required": true
                }
            ],
            "outputsClass": [
                {
                    "name": "remove",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 60,
                    "required": false
                },
                {
                    "name": "retry",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 61,
                    "required": false
                }
            ],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "UploadStatusIconComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Atom: a single uploaded-file chip — filename + status glyph + actions. Pure UI:\nemits <code>remove</code>/<code>retry</code>; the container decides what they mean.</p>\n",
            "rawdescription": "\nAtom: a single uploaded-file chip — filename + status glyph + actions. Pure UI:\nemits `remove`/`retry`; the container decides what they mean.",
            "type": "component",
            "sourceCode": "import { Component, input, output } from '@angular/core';\nimport type { UploadStatus } from '@shared/upload/upload.machine';\nimport { UploadStatusIconComponent } from '../upload-status-icon/upload-status-icon.component';\n\n/** Atom: a single uploaded-file chip — filename + status glyph + actions. Pure UI:\n    emits `remove`/`retry`; the container decides what they mean. */\n@Component({\n  selector: 'app-document-chip',\n  imports: [UploadStatusIconComponent],\n  styles: [`\n    :host {\n      display: inline-flex;\n      align-items: center;\n      gap: var(--rhc-space-max-md);\n      padding-block: var(--rhc-space-max-sm);\n      padding-inline: var(--rhc-space-max-md);\n      border: var(--rhc-border-width-sm) solid var(--rhc-color-border-subtle);\n      border-radius: var(--rhc-border-radius-md);\n      background: var(--rhc-color-cool-grey-100);\n    }\n    .name { flex: 1; }\n    .action {\n      background: none;\n      border: none;\n      cursor: pointer;\n      padding: 0;\n      color: var(--rhc-color-foreground-link);\n      font: inherit;\n      text-decoration: underline;\n    }\n    .action:hover { color: var(--rhc-color-foreground-link-hover); }\n    a.action { display: inline-block; }\n  `],\n  template: `\n    <app-upload-status-icon [status]=\"status().type\" />\n    <span class=\"name\">{{ fileName() }}</span>\n    @if (previewUrl()) {\n      <a class=\"action\" [href]=\"previewUrl()\" target=\"_blank\" rel=\"noopener\" [attr.aria-label]=\"previewLabel\">\n        <span i18n=\"@@upload.chip.preview\">Voorbeeld / Download</span>\n      </a>\n    }\n    @if (status().type === 'failed') {\n      <button type=\"button\" class=\"action\" [attr.aria-label]=\"retryLabel\" (click)=\"retry.emit()\">\n        <span i18n=\"@@upload.chip.retry\">Opnieuw</span>\n      </button>\n    }\n    @if (status().type !== 'deleting') {\n      <button type=\"button\" class=\"action\" [attr.aria-label]=\"removeLabel\" (click)=\"remove.emit()\">\n        <span i18n=\"@@upload.chip.remove\">Verwijderen</span>\n      </button>\n    }\n  `,\n})\nexport class DocumentChipComponent {\n  fileName = input.required<string>();\n  status = input.required<UploadStatus>();\n  /** When set, show a preview/download link (opens the stored bytes). */\n  previewUrl = input<string>();\n\n  remove = output<void>();\n  retry = output<void>();\n\n  protected get removeLabel(): string {\n    return $localize`:@@upload.chip.removeAria:${this.fileName()}:fileName: verwijderen`;\n  }\n  protected get previewLabel(): string {\n    return $localize`:@@upload.chip.previewAria:${this.fileName()}:fileName: bekijken of downloaden`;\n  }\n  protected get retryLabel(): string {\n    return $localize`:@@upload.chip.retryAria:${this.fileName()}:fileName: opnieuw uploaden`;\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host {\n      display: inline-flex;\n      align-items: center;\n      gap: var(--rhc-space-max-md);\n      padding-block: var(--rhc-space-max-sm);\n      padding-inline: var(--rhc-space-max-md);\n      border: var(--rhc-border-width-sm) solid var(--rhc-color-border-subtle);\n      border-radius: var(--rhc-border-radius-md);\n      background: var(--rhc-color-cool-grey-100);\n    }\n    .name { flex: 1; }\n    .action {\n      background: none;\n      border: none;\n      cursor: pointer;\n      padding: 0;\n      color: var(--rhc-color-foreground-link);\n      font: inherit;\n      text-decoration: underline;\n    }\n    .action:hover { color: var(--rhc-color-foreground-link-hover); }\n    a.action { display: inline-block; }\n  \n",
            "extends": [],
            "accessors": {
                "removeLabel": {
                    "name": "removeLabel",
                    "getSignature": {
                        "name": "removeLabel",
                        "type": "string",
                        "returnType": "string",
                        "line": 63
                    }
                },
                "previewLabel": {
                    "name": "previewLabel",
                    "getSignature": {
                        "name": "previewLabel",
                        "type": "string",
                        "returnType": "string",
                        "line": 66
                    }
                },
                "retryLabel": {
                    "name": "retryLabel",
                    "getSignature": {
                        "name": "retryLabel",
                        "type": "string",
                        "returnType": "string",
                        "line": 69
                    }
                }
            }
        },
        {
            "name": "DocumentUploadComponent",
            "id": "component-DocumentUploadComponent-3499beaf582c9d92fdf88f8907828f97942f4b562b7569c8d8612a1d2a6c16eb764948a185fb85c2daa17200aa8b9db50ac18718e92d091ab37cc55e35a5b548",
            "file": "src/app/shared/ui/upload/document-upload/document-upload.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-document-upload",
            "styleUrls": [],
            "styles": [
                "\n    :host { display: flex; flex-direction: column; gap: var(--rhc-space-max-xl); }\n  "
            ],
            "template": "@if (state().categoriesError) {\n  <app-upload-status-banner type=\"error\" [message]=\"state().categoriesError!\" />\n} @else {\n  @if (state().backgroundSyncAvailable === false && state().categories.length > 0) {\n    <app-upload-status-banner type=\"info\" [message]=\"foregroundOnlyMessage\" />\n  }\n  @for (c of state().categories; track c.categoryId) {\n    <app-document-category\n      [category]=\"c\"\n      [uploads]=\"uploadsFor(c.categoryId)\"\n      [channel]=\"channelFor(c.categoryId)\"\n      [rejection]=\"state().rejections[c.categoryId]\"\n      [previewUrlFor]=\"previewUrlFor()\"\n      (fileSelected)=\"fileSelected.emit({ categoryId: c.categoryId, files: $event })\"\n      (removeUpload)=\"removeUpload.emit($event)\"\n      (retryUpload)=\"retryUpload.emit($event)\"\n      (deleteUpload)=\"deleteUpload.emit($event)\"\n      (channelChange)=\"channelChange.emit({ categoryId: c.categoryId, channel: $event })\" />\n  }\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "previewUrlFor",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "(documentId: string) => string | undefined",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Optional: builds a preview/download URL for a completed upload&#39;s documentId.</p>\n",
                    "line": 41,
                    "rawdescription": "\nOptional: builds a preview/download URL for a completed upload's documentId.",
                    "required": false
                },
                {
                    "name": "state",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UploadState",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 39,
                    "required": true
                }
            ],
            "outputsClass": [
                {
                    "name": "channelChange",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "{ categoryId: string; channel: DeliveryChannel }",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 47,
                    "required": false
                },
                {
                    "name": "deleteUpload",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "{ localId: string; documentId: string }",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 46,
                    "required": false
                },
                {
                    "name": "fileSelected",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "{ categoryId: string; files: File[] }",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 43,
                    "required": false
                },
                {
                    "name": "removeUpload",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 44,
                    "required": false
                },
                {
                    "name": "retryUpload",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 45,
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "foregroundOnlyMessage",
                    "defaultValue": "$localize`:@@upload.foregroundOnly:Uploads gaan alleen door zolang deze pagina open blijft.`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 49,
                    "modifierKind": [
                        124,
                        148
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "channelFor",
                    "args": [
                        {
                            "name": "categoryId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "DeliveryChannel",
                    "typeParameters": [],
                    "line": 54,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "categoryId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "uploadsFor",
                    "args": [
                        {
                            "name": "categoryId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 51,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "categoryId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "DocumentCategoryComponent",
                    "type": "component"
                },
                {
                    "name": "UploadStatusBannerComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Organism: the full document-upload step — the category list, or a load-error\nbanner. Pure UI: re-exposes the category events, tagging each with its category\nwhere the parent needs it. The container wires these to the upload reducer.</p>\n",
            "rawdescription": "\nOrganism: the full document-upload step — the category list, or a load-error\nbanner. Pure UI: re-exposes the category events, tagging each with its category\nwhere the parent needs it. The container wires these to the upload reducer.",
            "type": "component",
            "sourceCode": "import { Component, input, output } from '@angular/core';\nimport type { DeliveryChannel, UploadState } from '@shared/upload/upload.machine';\nimport { DocumentCategoryComponent } from '../document-category/document-category.component';\nimport { UploadStatusBannerComponent } from '../upload-status-banner/upload-status-banner.component';\n\n/** Organism: the full document-upload step — the category list, or a load-error\n    banner. Pure UI: re-exposes the category events, tagging each with its category\n    where the parent needs it. The container wires these to the upload reducer. */\n@Component({\n  selector: 'app-document-upload',\n  imports: [DocumentCategoryComponent, UploadStatusBannerComponent],\n  styles: [`\n    :host { display: flex; flex-direction: column; gap: var(--rhc-space-max-xl); }\n  `],\n  template: `\n    @if (state().categoriesError) {\n      <app-upload-status-banner type=\"error\" [message]=\"state().categoriesError!\" />\n    } @else {\n      @if (state().backgroundSyncAvailable === false && state().categories.length > 0) {\n        <app-upload-status-banner type=\"info\" [message]=\"foregroundOnlyMessage\" />\n      }\n      @for (c of state().categories; track c.categoryId) {\n        <app-document-category\n          [category]=\"c\"\n          [uploads]=\"uploadsFor(c.categoryId)\"\n          [channel]=\"channelFor(c.categoryId)\"\n          [rejection]=\"state().rejections[c.categoryId]\"\n          [previewUrlFor]=\"previewUrlFor()\"\n          (fileSelected)=\"fileSelected.emit({ categoryId: c.categoryId, files: $event })\"\n          (removeUpload)=\"removeUpload.emit($event)\"\n          (retryUpload)=\"retryUpload.emit($event)\"\n          (deleteUpload)=\"deleteUpload.emit($event)\"\n          (channelChange)=\"channelChange.emit({ categoryId: c.categoryId, channel: $event })\" />\n      }\n    }\n  `,\n})\nexport class DocumentUploadComponent {\n  state = input.required<UploadState>();\n  /** Optional: builds a preview/download URL for a completed upload's documentId. */\n  previewUrlFor = input<(documentId: string) => string | undefined>();\n\n  fileSelected = output<{ categoryId: string; files: File[] }>();\n  removeUpload = output<string>();\n  retryUpload = output<string>();\n  deleteUpload = output<{ localId: string; documentId: string }>();\n  channelChange = output<{ categoryId: string; channel: DeliveryChannel }>();\n\n  protected readonly foregroundOnlyMessage = $localize`:@@upload.foregroundOnly:Uploads gaan alleen door zolang deze pagina open blijft.`;\n\n  protected uploadsFor(categoryId: string) {\n    return this.state().uploads.filter((u) => u.categoryId === categoryId);\n  }\n  protected channelFor(categoryId: string): DeliveryChannel {\n    return this.state().deliveryChannel[categoryId] ?? 'digital';\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host { display: flex; flex-direction: column; gap: var(--rhc-space-max-xl); }\n  \n",
            "extends": []
        },
        {
            "name": "FileInputComponent",
            "id": "component-FileInputComponent-bb6c6e7cefe1bae8be1c01141724bcbe29278f8ff3c8c65427123067215579b2318a1a29824a934ac95e2736da76535d010d92a6b6f7f905184c49f64ab01403",
            "file": "src/app/shared/ui/upload/file-input/file-input.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-file-input",
            "styleUrls": [],
            "styles": [
                "\n    :host { display: inline-block; }\n    .field { position: relative; display: inline-flex; }\n    input[type='file'] {\n      position: absolute;\n      inset: 0;\n      width: 100%;\n      height: 100%;\n      opacity: 0;\n      cursor: pointer;\n    }\n    input[type='file']:disabled { cursor: not-allowed; }\n    .label {\n      pointer-events: none;\n      display: inline-flex;\n      align-items: center;\n      gap: var(--rhc-space-max-sm);\n    }\n  "
            ],
            "template": "<span class=\"field\">\n  <input\n    #fileInput\n    type=\"file\"\n    [id]=\"inputId()\"\n    [attr.aria-label]=\"label()\"\n    [accept]=\"accept().join(',')\"\n    [multiple]=\"multiple()\"\n    [disabled]=\"disabled()\"\n    (change)=\"onChange($event)\" />\n  <span class=\"btn btn-outline-primary label\" [class.disabled]=\"disabled()\">\n    <span aria-hidden=\"true\">↑</span>\n    <span>{{ label() }}</span>\n  </span>\n</span>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "accept",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 46,
                    "required": false
                },
                {
                    "name": "disabled",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 48,
                    "required": false
                },
                {
                    "name": "inputId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 49,
                    "required": true
                },
                {
                    "name": "label",
                    "defaultValue": "$localize`:@@upload.fileInput.label:Bestand kiezen`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Accessible name + button text; the domain caller supplies a per-category label.</p>\n",
                    "line": 51,
                    "rawdescription": "\nAccessible name + button text; the domain caller supplies a per-category label.",
                    "required": false
                },
                {
                    "name": "multiple",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 47,
                    "required": false
                }
            ],
            "outputsClass": [
                {
                    "name": "filesSelected",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "File[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 53,
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "fileInput",
                    "defaultValue": "viewChild.required<ElementRef<HTMLInputElement>>('fileInput')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 55,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "onChange",
                    "args": [
                        {
                            "name": "event",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 57,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "event",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Atom: a styled file picker. Wraps a native <code>&lt;input type=&quot;file&quot;&gt;</code> and emits the\nselected files; resets its value after each change so re-picking the same file\nre-fires. Pure UI — no validation, no upload.</p>\n",
            "rawdescription": "\nAtom: a styled file picker. Wraps a native `<input type=\"file\">` and emits the\nselected files; resets its value after each change so re-picking the same file\nre-fires. Pure UI — no validation, no upload.",
            "type": "component",
            "sourceCode": "import { Component, ElementRef, input, output, viewChild } from '@angular/core';\n\n/** Atom: a styled file picker. Wraps a native `<input type=\"file\">` and emits the\n    selected files; resets its value after each change so re-picking the same file\n    re-fires. Pure UI — no validation, no upload. */\n@Component({\n  selector: 'app-file-input',\n  styles: [`\n    :host { display: inline-block; }\n    .field { position: relative; display: inline-flex; }\n    input[type='file'] {\n      position: absolute;\n      inset: 0;\n      width: 100%;\n      height: 100%;\n      opacity: 0;\n      cursor: pointer;\n    }\n    input[type='file']:disabled { cursor: not-allowed; }\n    .label {\n      pointer-events: none;\n      display: inline-flex;\n      align-items: center;\n      gap: var(--rhc-space-max-sm);\n    }\n  `],\n  template: `\n    <span class=\"field\">\n      <input\n        #fileInput\n        type=\"file\"\n        [id]=\"inputId()\"\n        [attr.aria-label]=\"label()\"\n        [accept]=\"accept().join(',')\"\n        [multiple]=\"multiple()\"\n        [disabled]=\"disabled()\"\n        (change)=\"onChange($event)\" />\n      <span class=\"btn btn-outline-primary label\" [class.disabled]=\"disabled()\">\n        <span aria-hidden=\"true\">↑</span>\n        <span>{{ label() }}</span>\n      </span>\n    </span>\n  `,\n})\nexport class FileInputComponent {\n  accept = input<string[]>([]);\n  multiple = input(false);\n  disabled = input(false);\n  inputId = input.required<string>();\n  /** Accessible name + button text; the domain caller supplies a per-category label. */\n  label = input($localize`:@@upload.fileInput.label:Bestand kiezen`);\n\n  filesSelected = output<File[]>();\n\n  private fileInput = viewChild.required<ElementRef<HTMLInputElement>>('fileInput');\n\n  onChange(event: Event) {\n    const input = event.target as HTMLInputElement;\n    this.filesSelected.emit(Array.from(input.files ?? []));\n    this.fileInput().nativeElement.value = '';\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host { display: inline-block; }\n    .field { position: relative; display: inline-flex; }\n    input[type='file'] {\n      position: absolute;\n      inset: 0;\n      width: 100%;\n      height: 100%;\n      opacity: 0;\n      cursor: pointer;\n    }\n    input[type='file']:disabled { cursor: not-allowed; }\n    .label {\n      pointer-events: none;\n      display: inline-flex;\n      align-items: center;\n      gap: var(--rhc-space-max-sm);\n    }\n  \n",
            "extends": []
        },
        {
            "name": "FormFieldComponent",
            "id": "component-FormFieldComponent-8cbe3b6b31a7fade9fe564f623ac3a9e6426a5a823a6540ef687040ccf61bb03453d60ad9d5c10656be3b580b81243d0820c4b7e0feba9283847bc89c5d8243d",
            "file": "src/app/shared/ui/form-field/form-field.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-form-field",
            "styleUrls": [],
            "styles": [],
            "template": "<div class=\"form-group row\" [class.required]=\"required()\">\n  <label class=\"col-md-4 col-form-label\" [id]=\"fieldId() + '-label'\" [for]=\"fieldId()\">{{ label() }}</label>\n  <div class=\"col-md-8 col-control\">\n    @if (description()) {\n      <div class=\"form-text\" [id]=\"fieldId() + '-desc'\">{{ description() }}</div>\n    }\n    <ng-content />\n    @if (error()) {\n      <div [id]=\"fieldId() + '-error'\" role=\"alert\"><span class=\"errortext\">{{ error() }}</span></div>\n    }\n  </div>\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "description",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 28,
                    "required": false
                },
                {
                    "name": "error",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 29,
                    "required": false
                },
                {
                    "name": "fieldId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 27,
                    "required": true
                },
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 26,
                    "required": true
                },
                {
                    "name": "required",
                    "defaultValue": "false, { transform: booleanAttribute }",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 30,
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Molecule: form field = label + projected control + optional error/description,\nin the CIBG Huisstijl horizontal <code>form-group row</code> layout (label <code>col-md-4</code>,\ncontrol <code>col-md-8</code>). The required asterisk comes from\n<code>.form-group.required&gt;.col-form-label::after</code> — no separate &quot;(verplicht)&quot; text.\nReused by the login form, the change-request form, and every wizard step.</p>\n",
            "rawdescription": "\nMolecule: form field = label + projected control + optional error/description,\nin the CIBG Huisstijl horizontal `form-group row` layout (label `col-md-4`,\ncontrol `col-md-8`). The required asterisk comes from\n`.form-group.required>.col-form-label::after` — no separate \"(verplicht)\" text.\nReused by the login form, the change-request form, and every wizard step.",
            "type": "component",
            "sourceCode": "import { Component, booleanAttribute, input } from '@angular/core';\n\n/** Molecule: form field = label + projected control + optional error/description,\n    in the CIBG Huisstijl horizontal `form-group row` layout (label `col-md-4`,\n    control `col-md-8`). The required asterisk comes from\n    `.form-group.required>.col-form-label::after` — no separate \"(verplicht)\" text.\n    Reused by the login form, the change-request form, and every wizard step. */\n@Component({\n  selector: 'app-form-field',\n  template: `\n    <div class=\"form-group row\" [class.required]=\"required()\">\n      <label class=\"col-md-4 col-form-label\" [id]=\"fieldId() + '-label'\" [for]=\"fieldId()\">{{ label() }}</label>\n      <div class=\"col-md-8 col-control\">\n        @if (description()) {\n          <div class=\"form-text\" [id]=\"fieldId() + '-desc'\">{{ description() }}</div>\n        }\n        <ng-content />\n        @if (error()) {\n          <div [id]=\"fieldId() + '-error'\" role=\"alert\"><span class=\"errortext\">{{ error() }}</span></div>\n        }\n      </div>\n    </div>\n  `,\n})\nexport class FormFieldComponent {\n  label = input.required<string>();\n  fieldId = input.required<string>();\n  description = input<string>();\n  error = input<string>();\n  required = input(false, { transform: booleanAttribute });\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "HeadingComponent",
            "id": "component-HeadingComponent-a1a72a48f0d4bf2d5087f27d440214944c1cff620985582f0c35bba38d37b48e3c36e6402303ae47bbc80ef147b039a078645e213aaea8b5503c1c6c00b59308",
            "file": "src/app/shared/ui/heading/heading.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-heading",
            "styleUrls": [],
            "styles": [],
            "template": "<ng-template #content><ng-content /></ng-template>\n@switch (level()) {\n  @case (1) { <h1><ng-container [ngTemplateOutlet]=\"content\" /></h1> }\n  @case (2) { <h2><ng-container [ngTemplateOutlet]=\"content\" /></h2> }\n  @case (3) { <h3><ng-container [ngTemplateOutlet]=\"content\" /></h3> }\n  @case (4) { <h4><ng-container [ngTemplateOutlet]=\"content\" /></h4> }\n  @default  { <h5><ng-container [ngTemplateOutlet]=\"content\" /></h5> }\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "level",
                    "defaultValue": "2",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "1 | 2 | 3 | 4 | 5",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22,
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "NgTemplateOutlet"
                }
            ],
            "description": "<p>Atom: heading. Renders the right h1..h5; CIBG/Bootstrap styles native headings.\nSingle <ng-content> captured in a template — multiple ng-content across</p>\n",
            "rawdescription": "\nAtom: heading. Renders the right h1..h5; CIBG/Bootstrap styles native headings.\nSingle <ng-content> captured in a template — multiple ng-content across",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/** Atom: heading. Renders the right h1..h5; CIBG/Bootstrap styles native headings.\n    Single <ng-content> captured in a template — multiple ng-content across\n    @switch branches silently drops the projected content. */\n@Component({\n  selector: 'app-heading',\n  imports: [NgTemplateOutlet],\n  template: `\n    <ng-template #content><ng-content /></ng-template>\n    @switch (level()) {\n      @case (1) { <h1><ng-container [ngTemplateOutlet]=\"content\" /></h1> }\n      @case (2) { <h2><ng-container [ngTemplateOutlet]=\"content\" /></h2> }\n      @case (3) { <h3><ng-container [ngTemplateOutlet]=\"content\" /></h3> }\n      @case (4) { <h4><ng-container [ngTemplateOutlet]=\"content\" /></h4> }\n      @default  { <h5><ng-container [ngTemplateOutlet]=\"content\" /></h5> }\n    }\n  `,\n})\nexport class HeadingComponent {\n  level = input<1 | 2 | 3 | 4 | 5>(2);\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "HerregistratiePage",
            "id": "component-HerregistratiePage-23bf19b0f7fd99695a5e0dbe2f95356aac393a1fbedc30ac3a1721a676b89abbb43935d9d0889dde5bf8d3ac1db668ba45c80e94f08b9fc650717b1bc295bd87",
            "file": "src/app/herregistratie/ui/herregistratie.page.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-herregistratie-page",
            "styleUrls": [],
            "styles": [],
            "template": "<app-page-shell i18n-heading=\"@@herregistratie.heading\" heading=\"Herregistratie aanvragen\" backLink=\"/dashboard\">\n  <app-async [data]=\"eligibility()\">\n    <ng-template appAsyncLoaded let-eligible>\n      @if (eligible) {\n        <app-alert type=\"info\" i18n=\"@@herregistratie.eligible\">\n          Uw huidige registratie verloopt binnenkort. Vraag tijdig herregistratie aan.\n        </app-alert>\n        <div class=\"app-section\">\n          <app-herregistratie-wizard />\n        </div>\n      } @else {\n        <app-alert type=\"warning\" i18n=\"@@herregistratie.notEligible\">\n          Voor uw huidige registratiestatus is herregistratie niet mogelijk.\n        </app-alert>\n      }\n    </ng-template>\n  </app-async>\n</app-page-shell>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "eligibility",
                    "defaultValue": "computed(() =>\n    map(this.store.decisions(), (d) => d.eligibleForHerregistratie),\n  )",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 40,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "store",
                    "defaultValue": "inject(BigProfileStore)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 37,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "PageShellComponent",
                    "type": "component"
                },
                {
                    "name": "AlertComponent",
                    "type": "component"
                },
                {
                    "name": "ASYNC"
                },
                {
                    "name": "HerregistratieWizardComponent",
                    "type": "component"
                }
            ],
            "description": "<p>A whole new page built from existing building blocks. Eligibility is a\nSERVER-computed decision read from the aggregated view — the frontend renders\nit, it does not recompute the rule.</p>\n",
            "rawdescription": "\nA whole new page built from existing building blocks. Eligibility is a\nSERVER-computed decision read from the aggregated view — the frontend renders\nit, it does not recompute the rule.",
            "type": "component",
            "sourceCode": "import { Component, computed, inject } from '@angular/core';\nimport { PageShellComponent } from '@shared/layout/page-shell/page-shell.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { ASYNC } from '@shared/ui/async/async.component';\nimport { map } from '@shared/application/remote-data';\nimport { BigProfileStore } from '@registratie/application/big-profile.store';\nimport { HerregistratieWizardComponent } from '@herregistratie/ui/herregistratie-wizard/herregistratie-wizard.component';\n\n/** A whole new page built from existing building blocks. Eligibility is a\n    SERVER-computed decision read from the aggregated view — the frontend renders\n    it, it does not recompute the rule. */\n@Component({\n  selector: 'app-herregistratie-page',\n  imports: [PageShellComponent, AlertComponent, ...ASYNC, HerregistratieWizardComponent],\n  template: `\n    <app-page-shell i18n-heading=\"@@herregistratie.heading\" heading=\"Herregistratie aanvragen\" backLink=\"/dashboard\">\n      <app-async [data]=\"eligibility()\">\n        <ng-template appAsyncLoaded let-eligible>\n          @if (eligible) {\n            <app-alert type=\"info\" i18n=\"@@herregistratie.eligible\">\n              Uw huidige registratie verloopt binnenkort. Vraag tijdig herregistratie aan.\n            </app-alert>\n            <div class=\"app-section\">\n              <app-herregistratie-wizard />\n            </div>\n          } @else {\n            <app-alert type=\"warning\" i18n=\"@@herregistratie.notEligible\">\n              Voor uw huidige registratiestatus is herregistratie niet mogelijk.\n            </app-alert>\n          }\n        </ng-template>\n      </app-async>\n    </app-page-shell>\n  `,\n})\nexport class HerregistratiePage {\n  private store = inject(BigProfileStore);\n  // The eligibility decision comes from the server (decisions block), not a\n  // client-side rule. The UI just reads the boolean.\n  protected eligibility = computed(() =>\n    map(this.store.decisions(), (d) => d.eligibleForHerregistratie),\n  );\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "HerregistratieWizardComponent",
            "id": "component-HerregistratieWizardComponent-be1fbdc0fa963205ec9a80d660bf87e308c5e8f8b9af7fa6e375d32a6b624d141dd3d3cc118b255e334d39c40771af446ac3ce067b305489d85688098cedef9b",
            "file": "src/app/herregistratie/ui/herregistratie-wizard/herregistratie-wizard.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-herregistratie-wizard",
            "styleUrls": [],
            "styles": [],
            "template": "<app-wizard-shell\n  [steps]=\"stepLabels\"\n  [current]=\"step() - 1\"\n  [stepTitle]=\"stepTitle()\"\n  i18n-processName=\"@@herregWizard.processName\" processName=\"Herregistratie aanvragen\"\n  [status]=\"shellStatus()\"\n  [primaryLabel]=\"primaryLabel()\"\n  [canGoBack]=\"step() > 1\"\n  [errors]=\"errorList()\"\n  [errorMessage]=\"errorMessage()\"\n  (primary)=\"onPrimary()\"\n  (back)=\"dispatch({ tag: 'Back' })\"\n  (cancel)=\"restart()\"\n  (retry)=\"onRetry()\"\n  (goToStep)=\"goToStep($event)\">\n\n  @switch (step()) {\n    @case (1) {\n      <app-form-field i18n-label=\"@@herregWizard.urenLabel\" label=\"Gewerkte uren (afgelopen 5 jaar)\" fieldId=\"uren\" required [error]=\"errUren()\">\n        <app-text-input inputId=\"uren\" [ngModel]=\"draft().uren\" (ngModelChange)=\"dispatch({ tag: 'SetField', key: 'uren', value: $event })\"\n          name=\"uren\" [invalid]=\"!!errUren()\" i18n-placeholder=\"@@herregWizard.urenPlaceholder\" placeholder=\"bijv. 4160\" />\n      </app-form-field>\n      <app-form-field i18n-label=\"@@herregWizard.jarenLabel\" label=\"Aantal jaren werkzaam\" fieldId=\"jaren\" required [error]=\"errJaren()\">\n        <app-text-input inputId=\"jaren\" [ngModel]=\"draft().jaren\" (ngModelChange)=\"dispatch({ tag: 'SetField', key: 'jaren', value: $event })\"\n          name=\"jaren\" [invalid]=\"!!errJaren()\" i18n-placeholder=\"@@herregWizard.jarenPlaceholder\" placeholder=\"bijv. 5\" />\n      </app-form-field>\n    }\n    @case (2) {\n      <app-form-field i18n-label=\"@@herregWizard.puntenLabel\" label=\"Behaalde nascholingspunten\" fieldId=\"punten\" required [error]=\"errPunten()\">\n        <app-text-input inputId=\"punten\" [ngModel]=\"draft().punten\" (ngModelChange)=\"dispatch({ tag: 'SetField', key: 'punten', value: $event })\"\n          name=\"punten\" [invalid]=\"!!errPunten()\" i18n-placeholder=\"@@herregWizard.puntenPlaceholder\" placeholder=\"bijv. 200\" />\n      </app-form-field>\n    }\n    @case (3) {\n      <app-document-upload\n        [state]=\"upload()\"\n        [previewUrlFor]=\"previewUrlFor\"\n        (fileSelected)=\"uploadCtl.onFileSelected($event.categoryId, $event.files)\"\n        (removeUpload)=\"uploadCtl.onRemove($event)\"\n        (retryUpload)=\"uploadCtl.onRetry($event)\"\n        (deleteUpload)=\"uploadCtl.onDelete($event)\"\n        (channelChange)=\"uploadCtl.onChannelChange($event.categoryId, $event.channel)\" />\n      @if (errDocumenten()) {\n        <app-alert type=\"warning\">{{ errDocumenten() }}</app-alert>\n      }\n    }\n  }\n\n  <div wizardSuccess>\n    <app-confirmation i18n-title=\"@@herregWizard.success.title\" title=\"Uw aanvraag tot herregistratie is ontvangen\" />\n  </div>\n</app-wizard-shell>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "seed",
                    "defaultValue": "initial",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "WizardState",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Optional seed so Storybook / the showcase can mount any state directly.</p>\n",
                    "line": 93,
                    "rawdescription": "\nOptional seed so Storybook / the showcase can mount any state directly.",
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "dispatch",
                    "defaultValue": "this.store.dispatch",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 96,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "draft",
                    "defaultValue": "computed<Draft>(() => this.editing()?.draft ?? { uren: '', jaren: '', punten: '' })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 118,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "draftSync",
                    "defaultValue": "createDraftSync({\n    type: 'herregistratie',\n    snapshot: () => {\n      const s = this.state();\n      if (s.tag !== 'Editing' || !hasProgress(s)) return null;\n      const documentIds = deliveryRefs(s.upload).filter((r) => r.channel === 'digital' && r.documentId).map((r) => r.documentId!);\n      return { draft: s, stepIndex: s.step - 1, stepCount: this.stepLabels.length, documentIds };\n    },\n    onResume: (draft) => this.dispatch({ tag: 'Seed', state: draft as WizardState }),\n    enabled: () => this.seed() === initial,\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 100,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "editing",
                    "defaultValue": "computed(() => whenTag(this.state(), 'Editing'))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 116,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "errDocumenten",
                    "defaultValue": "computed(() => this.editing()?.errors.documenten ?? '')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 123,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "errJaren",
                    "defaultValue": "computed(() => this.editing()?.errors.jaren ?? '')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 121,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "errorList",
                    "defaultValue": "computed<WizardError[]>(() => {\n    const e = this.editing()?.errors ?? {};\n    return (Object.keys(e) as (keyof typeof e)[])\n      .filter((k) => e[k])\n      .map((k) => ({ id: k, message: e[k]! }));\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Current step&#39;s field errors, flattened for the shell&#39;s error summary.</p>\n",
                    "line": 152,
                    "rawdescription": "\nCurrent step's field errors, flattened for the shell's error summary.",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "errorMessage",
                    "defaultValue": "computed(() => $localize`:@@wizard.indienenMislukt:Indienen mislukt:` + ` ${this.failedError()}`)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 142,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "errPunten",
                    "defaultValue": "computed(() => this.editing()?.errors.punten ?? '')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 122,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "errUren",
                    "defaultValue": "computed(() => this.editing()?.errors.uren ?? '')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 120,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "failedError",
                    "defaultValue": "computed(() => whenTag(this.state(), 'Failed')?.error ?? '')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 124,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "previewUrlFor",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Preview/download link for a completed upload; dev-simulation <code>demo-*</code> ids have\nno stored bytes, so they get no link.</p>\n",
                    "line": 89,
                    "rawdescription": "\nPreview/download link for a completed upload; dev-simulation `demo-*` ids have\nno stored bytes, so they get no link.",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "primaryLabel",
                    "defaultValue": "computed(() => {\n    const step = this.step();\n    return step < 3 ? naarStapLabel(step + 1, this.stepLabels[step]) : $localize`:@@herregWizard.indienen:Herregistratie aanvragen`;\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 133,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "profile",
                    "defaultValue": "inject(BigProfileStore)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 83,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "shellStatus",
                    "defaultValue": "computed<WizardStatus>(() => {\n    switch (this.state().tag) {\n      case 'Editing': return 'editing';\n      case 'Submitting': return 'submitting';\n      case 'Submitted': return 'submitted';\n      case 'Failed': return 'failed';\n    }\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 143,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "state",
                    "defaultValue": "this.store.model",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 95,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "step",
                    "defaultValue": "computed(() => this.editing()?.step ?? 1)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 117,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "stepLabels",
                    "defaultValue": "[$localize`:@@herregWizard.step.werkervaring:Werkervaring`, $localize`:@@herregWizard.step.nascholing:Nascholing`, $localize`:@@herregWizard.step.documenten:Documenten`]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 113,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "stepTitle",
                    "defaultValue": "computed(() => this.stepTitles[this.step() - 1])",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 132,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "stepTitles",
                    "defaultValue": "[$localize`:@@herregWizard.title.werkervaring:Werkervaring (afgelopen 5 jaar)`, $localize`:@@herregWizard.title.nascholing:Nascholing`, $localize`:@@herregWizard.title.documenten:Documenten aanleveren`]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 114,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "store",
                    "defaultValue": "createStore<WizardState, WizardMsg>(initial, reduce)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 85,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "upload",
                    "defaultValue": "computed<UploadState>(() => this.editing()?.upload ?? initialUpload)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 119,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "uploadAdapter",
                    "defaultValue": "inject(UploadAdapter)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 84,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "uploadCtl",
                    "defaultValue": "createUploadController({\n    wizardId: 'herregistratie',\n    getUpload: () => this.upload(),\n    dispatch: (msg) => this.dispatch({ tag: 'Upload', msg }),\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 125,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "goToStep",
                    "args": [
                        {
                            "name": "index",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 139,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nStepper emits a 0-based index for an earlier (visited) step.",
                    "description": "<p>Stepper emits a 0-based index for an earlier (visited) step.</p>\n",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "index",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "onPrimary",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 166,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onRetry",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 173,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "restart",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 179,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nReset the wizard to a fresh, empty start.",
                    "description": "<p>Reset the wizard to a fresh, empty start.</p>\n"
                },
                {
                    "name": "runIfSubmitting",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 186,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nThe effect: when we entered Submitting, submit through the aanvraag lifecycle,\nflip the optimistic cross-page flag, then dispatch the result (commit/rollback).",
                    "description": "<p>The effect: when we entered Submitting, submit through the aanvraag lifecycle,\nflip the optimistic cross-page flag, then dispatch the result (commit/rollback).</p>\n",
                    "modifierKind": [
                        123,
                        134
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "FormsModule",
                    "type": "module"
                },
                {
                    "name": "FormFieldComponent",
                    "type": "component"
                },
                {
                    "name": "TextInputComponent",
                    "type": "component"
                },
                {
                    "name": "AlertComponent",
                    "type": "component"
                },
                {
                    "name": "ConfirmationComponent",
                    "type": "component"
                },
                {
                    "name": "WizardShellComponent",
                    "type": "component"
                },
                {
                    "name": "DocumentUploadComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Organism: multi-step herregistratie wizard. ALL state lives in one signal\ndriven by the pure <code>reduce</code> function (see herregistratie.machine.ts) via an\nElm-style store. The UI just sends messages and folds over the state&#39;s tag —\nno booleans like <code>submitting</code>/<code>submitted</code> that could contradict each other.\nSubmitting also flips an optimistic flag on the shared BigProfileStore, so\nthe dashboard shows &quot;in behandeling&quot; immediately.</p>\n",
            "rawdescription": "\nOrganism: multi-step herregistratie wizard. ALL state lives in one signal\ndriven by the pure `reduce` function (see herregistratie.machine.ts) via an\nElm-style store. The UI just sends messages and folds over the state's tag —\nno booleans like `submitting`/`submitted` that could contradict each other.\nSubmitting also flips an optimistic flag on the shared BigProfileStore, so\nthe dashboard shows \"in behandeling\" immediately.",
            "type": "component",
            "sourceCode": "import { Component, computed, inject, input } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormFieldComponent } from '@shared/ui/form-field/form-field.component';\nimport { TextInputComponent } from '@shared/ui/text-input/text-input.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { WizardShellComponent, WizardError, WizardStatus, naarStapLabel } from '@shared/layout/wizard-shell/wizard-shell.component';\nimport { ConfirmationComponent } from '@shared/ui/confirmation/confirmation.component';\nimport { createStore } from '@shared/application/store';\nimport { whenTag } from '@shared/kernel/fp';\nimport { BigProfileStore } from '@registratie/application/big-profile.store';\nimport { WizardState, WizardMsg, Draft, initial, reduce, hasProgress } from '@herregistratie/domain/herregistratie.machine';\nimport { createDraftSync } from '@registratie/application/draft-sync';\nimport { DocumentUploadComponent } from '@shared/ui/upload/document-upload/document-upload.component';\nimport { createUploadController } from '@shared/upload/upload-controller';\nimport { UploadAdapter } from '@shared/upload/upload.adapter';\nimport { UploadState, initialUpload, deliveryRefs } from '@shared/upload/upload.machine';\n\n/** Organism: multi-step herregistratie wizard. ALL state lives in one signal\n    driven by the pure `reduce` function (see herregistratie.machine.ts) via an\n    Elm-style store. The UI just sends messages and folds over the state's tag —\n    no booleans like `submitting`/`submitted` that could contradict each other.\n    Submitting also flips an optimistic flag on the shared BigProfileStore, so\n    the dashboard shows \"in behandeling\" immediately. */\n@Component({\n  selector: 'app-herregistratie-wizard',\n  imports: [FormsModule, FormFieldComponent, TextInputComponent, AlertComponent, ConfirmationComponent, WizardShellComponent, DocumentUploadComponent],\n  template: `\n    <app-wizard-shell\n      [steps]=\"stepLabels\"\n      [current]=\"step() - 1\"\n      [stepTitle]=\"stepTitle()\"\n      i18n-processName=\"@@herregWizard.processName\" processName=\"Herregistratie aanvragen\"\n      [status]=\"shellStatus()\"\n      [primaryLabel]=\"primaryLabel()\"\n      [canGoBack]=\"step() > 1\"\n      [errors]=\"errorList()\"\n      [errorMessage]=\"errorMessage()\"\n      (primary)=\"onPrimary()\"\n      (back)=\"dispatch({ tag: 'Back' })\"\n      (cancel)=\"restart()\"\n      (retry)=\"onRetry()\"\n      (goToStep)=\"goToStep($event)\">\n\n      @switch (step()) {\n        @case (1) {\n          <app-form-field i18n-label=\"@@herregWizard.urenLabel\" label=\"Gewerkte uren (afgelopen 5 jaar)\" fieldId=\"uren\" required [error]=\"errUren()\">\n            <app-text-input inputId=\"uren\" [ngModel]=\"draft().uren\" (ngModelChange)=\"dispatch({ tag: 'SetField', key: 'uren', value: $event })\"\n              name=\"uren\" [invalid]=\"!!errUren()\" i18n-placeholder=\"@@herregWizard.urenPlaceholder\" placeholder=\"bijv. 4160\" />\n          </app-form-field>\n          <app-form-field i18n-label=\"@@herregWizard.jarenLabel\" label=\"Aantal jaren werkzaam\" fieldId=\"jaren\" required [error]=\"errJaren()\">\n            <app-text-input inputId=\"jaren\" [ngModel]=\"draft().jaren\" (ngModelChange)=\"dispatch({ tag: 'SetField', key: 'jaren', value: $event })\"\n              name=\"jaren\" [invalid]=\"!!errJaren()\" i18n-placeholder=\"@@herregWizard.jarenPlaceholder\" placeholder=\"bijv. 5\" />\n          </app-form-field>\n        }\n        @case (2) {\n          <app-form-field i18n-label=\"@@herregWizard.puntenLabel\" label=\"Behaalde nascholingspunten\" fieldId=\"punten\" required [error]=\"errPunten()\">\n            <app-text-input inputId=\"punten\" [ngModel]=\"draft().punten\" (ngModelChange)=\"dispatch({ tag: 'SetField', key: 'punten', value: $event })\"\n              name=\"punten\" [invalid]=\"!!errPunten()\" i18n-placeholder=\"@@herregWizard.puntenPlaceholder\" placeholder=\"bijv. 200\" />\n          </app-form-field>\n        }\n        @case (3) {\n          <app-document-upload\n            [state]=\"upload()\"\n            [previewUrlFor]=\"previewUrlFor\"\n            (fileSelected)=\"uploadCtl.onFileSelected($event.categoryId, $event.files)\"\n            (removeUpload)=\"uploadCtl.onRemove($event)\"\n            (retryUpload)=\"uploadCtl.onRetry($event)\"\n            (deleteUpload)=\"uploadCtl.onDelete($event)\"\n            (channelChange)=\"uploadCtl.onChannelChange($event.categoryId, $event.channel)\" />\n          @if (errDocumenten()) {\n            <app-alert type=\"warning\">{{ errDocumenten() }}</app-alert>\n          }\n        }\n      }\n\n      <div wizardSuccess>\n        <app-confirmation i18n-title=\"@@herregWizard.success.title\" title=\"Uw aanvraag tot herregistratie is ontvangen\" />\n      </div>\n    </app-wizard-shell>\n  `,\n})\nexport class HerregistratieWizardComponent {\n  private profile = inject(BigProfileStore);\n  private uploadAdapter = inject(UploadAdapter);\n  private store = createStore<WizardState, WizardMsg>(initial, reduce);\n\n  /** Preview/download link for a completed upload; dev-simulation `demo-*` ids have\n      no stored bytes, so they get no link. */\n  protected previewUrlFor = (documentId: string): string | undefined =>\n    documentId.startsWith('demo-') ? undefined : this.uploadAdapter.contentUrl(documentId);\n\n  /** Optional seed so Storybook / the showcase can mount any state directly. */\n  seed = input<WizardState>(initial);\n\n  readonly state = this.store.model; // public so the showcase can highlight the live state\n  protected dispatch = this.store.dispatch;\n\n  // Backend draft-sync (new persistence for this wizard): create a Concept on first\n  // progress, debounced-sync the snapshot, resume by `?aanvraag=<id>`.\n  private draftSync = createDraftSync({\n    type: 'herregistratie',\n    snapshot: () => {\n      const s = this.state();\n      if (s.tag !== 'Editing' || !hasProgress(s)) return null;\n      const documentIds = deliveryRefs(s.upload).filter((r) => r.channel === 'digital' && r.documentId).map((r) => r.documentId!);\n      return { draft: s, stepIndex: s.step - 1, stepCount: this.stepLabels.length, documentIds };\n    },\n    onResume: (draft) => this.dispatch({ tag: 'Seed', state: draft as WizardState }),\n    enabled: () => this.seed() === initial,\n  });\n\n  // Stepper labels + per-step heading titles (presentational only).\n  readonly stepLabels = [$localize`:@@herregWizard.step.werkervaring:Werkervaring`, $localize`:@@herregWizard.step.nascholing:Nascholing`, $localize`:@@herregWizard.step.documenten:Documenten`];\n  private stepTitles = [$localize`:@@herregWizard.title.werkervaring:Werkervaring (afgelopen 5 jaar)`, $localize`:@@herregWizard.title.nascholing:Nascholing`, $localize`:@@herregWizard.title.documenten:Documenten aanleveren`];\n\n  private editing = computed(() => whenTag(this.state(), 'Editing'));\n  protected step = computed(() => this.editing()?.step ?? 1);\n  protected draft = computed<Draft>(() => this.editing()?.draft ?? { uren: '', jaren: '', punten: '' });\n  protected upload = computed<UploadState>(() => this.editing()?.upload ?? initialUpload);\n  protected errUren = computed(() => this.editing()?.errors.uren ?? '');\n  protected errJaren = computed(() => this.editing()?.errors.jaren ?? '');\n  protected errPunten = computed(() => this.editing()?.errors.punten ?? '');\n  protected errDocumenten = computed(() => this.editing()?.errors.documenten ?? '');\n  protected failedError = computed(() => whenTag(this.state(), 'Failed')?.error ?? '');\n  protected uploadCtl = createUploadController({\n    wizardId: 'herregistratie',\n    getUpload: () => this.upload(),\n    dispatch: (msg) => this.dispatch({ tag: 'Upload', msg }),\n  });\n\n  // --- Presentational wiring for the shared wizard shell ---------------------\n  protected stepTitle = computed(() => this.stepTitles[this.step() - 1]);\n  protected primaryLabel = computed(() => {\n    const step = this.step();\n    return step < 3 ? naarStapLabel(step + 1, this.stepLabels[step]) : $localize`:@@herregWizard.indienen:Herregistratie aanvragen`;\n  });\n\n  /** Stepper emits a 0-based index for an earlier (visited) step. */\n  protected goToStep(index: number) {\n    this.dispatch({ tag: 'GaNaarStap', step: (index + 1) as 1 | 2 | 3 });\n  }\n  protected errorMessage = computed(() => $localize`:@@wizard.indienenMislukt:Indienen mislukt:` + ` ${this.failedError()}`);\n  protected shellStatus = computed<WizardStatus>(() => {\n    switch (this.state().tag) {\n      case 'Editing': return 'editing';\n      case 'Submitting': return 'submitting';\n      case 'Submitted': return 'submitted';\n      case 'Failed': return 'failed';\n    }\n  });\n  /** Current step's field errors, flattened for the shell's error summary. */\n  protected errorList = computed<WizardError[]>(() => {\n    const e = this.editing()?.errors ?? {};\n    return (Object.keys(e) as (keyof typeof e)[])\n      .filter((k) => e[k])\n      .map((k) => ({ id: k, message: e[k]! }));\n  });\n\n  constructor() {\n    // An explicit seed (stories/tests) wins; otherwise resume the backend draft\n    // (`?aanvraag=<id>`) or start fresh. Persistence is the draftSync controller's job.\n    const seeded = this.seed();\n    queueMicrotask(() => (seeded !== initial ? this.dispatch({ tag: 'Seed', state: seeded }) : this.draftSync.resume()));\n  }\n\n  onPrimary() {\n    const s = this.state();\n    if (s.tag !== 'Editing') return;\n    this.dispatch(s.step < 3 ? { tag: 'Next' } : { tag: 'Submit' });\n    this.runIfSubmitting();\n  }\n\n  onRetry() {\n    this.dispatch({ tag: 'Retry' });\n    this.runIfSubmitting();\n  }\n\n  /** Reset the wizard to a fresh, empty start. */\n  restart() {\n    this.draftSync.reset();\n    this.dispatch({ tag: 'Seed', state: initial });\n  }\n\n  /** The effect: when we entered Submitting, submit through the aanvraag lifecycle,\n      flip the optimistic cross-page flag, then dispatch the result (commit/rollback). */\n  private async runIfSubmitting() {\n    const s = this.state();\n    if (s.tag !== 'Submitting') return;\n    this.profile.beginHerregistratie();\n    const r = await this.draftSync.submit({ uren: s.data.uren, documents: s.data.documents });\n    if (r.ok) {\n      this.dispatch({ tag: 'SubmitConfirmed' });\n      this.profile.confirmHerregistratie();\n    } else {\n      this.dispatch({ tag: 'SubmitFailed', error: r.error });\n      this.profile.rollbackHerregistratie();\n    }\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 157
            },
            "extends": []
        },
        {
            "name": "IntakePage",
            "id": "component-IntakePage-0e1d34cb0e699276f13fa0f1017015cc2acfde47fdcb7e2c7e84b79784bbb59d46c690227744aa51d0e5e7c62ba8921cc2697e22992878d92a02106c69be5381",
            "file": "src/app/herregistratie/ui/intake.page.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-intake-page",
            "styleUrls": [],
            "styles": [],
            "template": "<app-page-shell i18n-heading=\"@@intake.heading\" heading=\"Herregistratie — intake\" backLink=\"/dashboard\">\n  <app-alert type=\"info\" i18n=\"@@intake.intro\">\n    Een paar vragen bepalen welke gegevens we nodig hebben. Afhankelijk van uw\n    antwoorden verschijnen er extra vragen. Uw antwoorden blijven bewaard als u\n    de pagina herlaadt.\n  </app-alert>\n  <div class=\"app-section\">\n    <app-intake-wizard />\n  </div>\n</app-page-shell>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "PageShellComponent",
                    "type": "component"
                },
                {
                    "name": "AlertComponent",
                    "type": "component"
                },
                {
                    "name": "IntakeWizardComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Page: the branching intake questionnaire. Built entirely from existing\nbuilding blocks (page shell + alert + the intake-wizard organism).</p>\n",
            "rawdescription": "\nPage: the branching intake questionnaire. Built entirely from existing\nbuilding blocks (page shell + alert + the intake-wizard organism).",
            "type": "component",
            "sourceCode": "import { Component } from '@angular/core';\nimport { PageShellComponent } from '@shared/layout/page-shell/page-shell.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { IntakeWizardComponent } from '@herregistratie/ui/intake-wizard/intake-wizard.component';\n\n/** Page: the branching intake questionnaire. Built entirely from existing\n    building blocks (page shell + alert + the intake-wizard organism). */\n@Component({\n  selector: 'app-intake-page',\n  imports: [PageShellComponent, AlertComponent, IntakeWizardComponent],\n  template: `\n    <app-page-shell i18n-heading=\"@@intake.heading\" heading=\"Herregistratie — intake\" backLink=\"/dashboard\">\n      <app-alert type=\"info\" i18n=\"@@intake.intro\">\n        Een paar vragen bepalen welke gegevens we nodig hebben. Afhankelijk van uw\n        antwoorden verschijnen er extra vragen. Uw antwoorden blijven bewaard als u\n        de pagina herlaadt.\n      </app-alert>\n      <div class=\"app-section\">\n        <app-intake-wizard />\n      </div>\n    </app-page-shell>\n  `,\n})\nexport class IntakePage {}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "IntakeWizardComponent",
            "id": "component-IntakeWizardComponent-7b6ba6b6b8e98e6773c3038edd0203bdaabb83f21b5a32d45db26fa3a200cf6bdb85b6a158b978df99582980284a74188986c46de9c21c50de98e4ef097615f1",
            "file": "src/app/herregistratie/ui/intake-wizard/intake-wizard.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-intake-wizard",
            "styleUrls": [],
            "styles": [],
            "template": "<app-wizard-shell\n  [steps]=\"stepLabels\"\n  [current]=\"cursor()\"\n  [stepTitle]=\"stepTitle()\"\n  i18n-processName=\"@@intake.processName\" processName=\"Herregistratie-intake\"\n  [status]=\"shellStatus()\"\n  [primaryLabel]=\"primaryLabel()\"\n  [canGoBack]=\"cursor() > 0\"\n  [errors]=\"errorList()\"\n  [errorMessage]=\"errorMessage()\"\n  (primary)=\"onPrimary()\"\n  (back)=\"dispatch({ tag: 'Back' })\"\n  (cancel)=\"restart()\"\n  (retry)=\"onRetry()\"\n  (goToStep)=\"dispatch({ tag: 'GaNaarStap', cursor: $event })\">\n\n  @switch (step()) {\n    @case ('buitenland') {\n      <app-form-field i18n-label=\"@@intake.q.buitenland\" label=\"Heeft u de afgelopen 5 jaar buiten Nederland gewerkt?\" fieldId=\"buitenlandGewerkt\" required [error]=\"err('buitenlandGewerkt')\">\n        <app-radio-group name=\"buitenlandGewerkt\" [options]=\"jaNee\"\n          [ngModel]=\"answers().buitenlandGewerkt ?? ''\" (ngModelChange)=\"set('buitenlandGewerkt', $event)\" />\n      </app-form-field>\n      @if (answers().buitenlandGewerkt === 'ja') {\n        <app-form-field i18n-label=\"@@intake.q.land\" label=\"In welk land?\" fieldId=\"land\" required [error]=\"err('land')\">\n          <app-text-input inputId=\"land\" [ngModel]=\"answers().land ?? ''\" (ngModelChange)=\"set('land', $event)\" name=\"land\" i18n-placeholder=\"@@intake.q.landPlaceholder\" placeholder=\"bijv. België\" />\n        </app-form-field>\n        <app-form-field i18n-label=\"@@intake.q.buitenlandseUren\" label=\"Hoeveel uur heeft u daar gewerkt?\" fieldId=\"buitenlandseUren\" required [error]=\"err('buitenlandseUren')\">\n          <app-text-input inputId=\"buitenlandseUren\" [ngModel]=\"answers().buitenlandseUren ?? ''\" (ngModelChange)=\"set('buitenlandseUren', $event)\" name=\"buitenlandseUren\" i18n-placeholder=\"@@intake.q.buitenlandseUrenPlaceholder\" placeholder=\"bijv. 800\" />\n        </app-form-field>\n      }\n    }\n    @case ('werk') {\n      <app-form-field i18n-label=\"@@intake.q.urenNl\" label=\"Gewerkte uren in Nederland (afgelopen 5 jaar)\" fieldId=\"uren\" required [error]=\"err('uren')\">\n        <app-text-input inputId=\"uren\" [ngModel]=\"answers().uren ?? ''\" (ngModelChange)=\"set('uren', $event)\" name=\"uren\" i18n-placeholder=\"@@intake.q.urenNlPlaceholder\" placeholder=\"bijv. 4160\" />\n      </app-form-field>\n      @if (scholingZichtbaar()) {\n        <app-form-field i18n-label=\"@@intake.q.scholing\" label=\"U werkte relatief weinig uren. Heeft u aanvullende scholing gevolgd?\" fieldId=\"scholingGevolgd\" required [error]=\"err('scholingGevolgd')\">\n          <app-radio-group name=\"scholingGevolgd\" [options]=\"jaNee\"\n            [ngModel]=\"answers().scholingGevolgd ?? ''\" (ngModelChange)=\"set('scholingGevolgd', $event)\" />\n        </app-form-field>\n      }\n      @if (answers().scholingGevolgd === 'ja') {\n        <app-form-field i18n-label=\"@@intake.q.punten\" label=\"Behaalde nascholingspunten\" fieldId=\"punten\" required [error]=\"err('punten')\">\n          <app-text-input inputId=\"punten\" [ngModel]=\"answers().punten ?? ''\" (ngModelChange)=\"set('punten', $event)\" name=\"punten\" i18n-placeholder=\"@@intake.q.puntenPlaceholder\" placeholder=\"bijv. 200\" />\n        </app-form-field>\n      }\n    }\n    @case ('review') {\n      <app-alert type=\"info\" i18n=\"@@intake.review.controleer\">Controleer uw antwoorden en dien de aanvraag in.</app-alert>\n      <app-review-section i18n-heading=\"@@intake.sectie.buitenland\" heading=\"Buitenland\"\n        i18n-editAriaLabel=\"@@intake.buitenlandWijzigenAria\" editAriaLabel=\"Wijzigen buitenland\"\n        (edit)=\"dispatch({ tag: 'GaNaarStap', cursor: 0 })\">\n        <div app-data-row i18n-key=\"@@intake.review.buitenNl\" key=\"Buiten NL gewerkt\" [value]=\"answers().buitenlandGewerkt ?? '—'\"></div>\n        @if (answers().buitenlandGewerkt === 'ja') {\n          <div app-data-row i18n-key=\"@@intake.review.land\" key=\"Land\" [value]=\"answers().land ?? ''\"></div>\n          <div app-data-row i18n-key=\"@@intake.review.buitenlandseUren\" key=\"Buitenlandse uren\" [value]=\"answers().buitenlandseUren ?? ''\"></div>\n        }\n      </app-review-section>\n      <app-review-section class=\"app-section\" i18n-heading=\"@@intake.sectie.werk\" heading=\"Werk in Nederland\"\n        i18n-editAriaLabel=\"@@intake.werkWijzigenAria\" editAriaLabel=\"Wijzigen werk in Nederland\"\n        (edit)=\"dispatch({ tag: 'GaNaarStap', cursor: 1 })\">\n        <div app-data-row i18n-key=\"@@intake.review.urenNl\" key=\"Uren NL\" [value]=\"answers().uren ?? ''\"></div>\n        @if (scholingZichtbaar()) {\n          <div app-data-row i18n-key=\"@@intake.review.scholing\" key=\"Aanvullende scholing\" [value]=\"answers().scholingGevolgd ?? ''\"></div>\n        }\n        @if (answers().scholingGevolgd === 'ja') {\n          <div app-data-row i18n-key=\"@@intake.review.punten\" key=\"Nascholingspunten\" [value]=\"answers().punten ?? ''\"></div>\n        }\n      </app-review-section>\n    }\n  }\n\n  <div wizardSuccess>\n    <app-confirmation i18n-title=\"@@intake.success.title\" title=\"Uw aanvraag tot herregistratie is ontvangen\">\n      <div class=\"app-section\">\n        <app-button variant=\"secondary\" (click)=\"restart()\" i18n=\"@@intake.opnieuw\">Opnieuw beginnen</app-button>\n      </div>\n    </app-confirmation>\n  </div>\n</app-wizard-shell>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "seed",
                    "defaultValue": "initial",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "IntakeState",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Optional seed so Storybook / the showcase can mount any state directly.</p>\n",
                    "line": 129,
                    "rawdescription": "\nOptional seed so Storybook / the showcase can mount any state directly.",
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "answering",
                    "defaultValue": "computed(() => whenTag(this.state(), 'Answering'))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 147,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "answers",
                    "defaultValue": "computed<Answers>(() => this.answering()?.answers ?? {})",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 151,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "cursor",
                    "defaultValue": "computed(() => this.answering()?.cursor ?? 0)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 150,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "dispatch",
                    "defaultValue": "this.store.dispatch",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 133,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "draftSync",
                    "defaultValue": "createDraftSync({\n    type: 'intake',\n    snapshot: () => {\n      const s = this.state();\n      if (s.tag !== 'Answering' || !hasProgress(s)) return null;\n      return { draft: s, stepIndex: s.cursor, stepCount: STEPS.length, documentIds: [] };\n    },\n    onResume: (draft) => this.dispatch({ tag: 'Seed', state: draft as IntakeState }),\n    enabled: () => this.seed() === initial,\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 136,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "err",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 190,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "errorList",
                    "defaultValue": "computed<WizardError[]>(() => {\n    const e = this.answering()?.errors ?? {};\n    return (Object.keys(e) as (keyof Answers)[])\n      .filter((k) => e[k])\n      .map((k) => ({ id: k, message: e[k]! }));\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Current step&#39;s field errors, flattened for the shell&#39;s error summary. The\nfield ids match the answer keys, so the summary anchors jump to the field.</p>\n",
                    "line": 183,
                    "rawdescription": "\nCurrent step's field errors, flattened for the shell's error summary. The\nfield ids match the answer keys, so the summary anchors jump to the field.",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "errorMessage",
                    "defaultValue": "computed(() => $localize`:@@wizard.indienenMislukt:Indienen mislukt:` + ` ${this.failedError()}`)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 172,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "failedError",
                    "defaultValue": "computed(() => whenTag(this.state(), 'Failed')?.error ?? '')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 157,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "jaNee",
                    "defaultValue": "JA_NEE",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 131,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "policyStore",
                    "defaultValue": "inject(IntakePolicyStore)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 125,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "primaryLabel",
                    "defaultValue": "computed(() => {\n    if (this.step() === 'review') return $localize`:@@intake.indienen:Aanvraag indienen`;\n    const next = this.cursor() + 1;\n    return naarStapLabel(next + 1, this.stepLabels[next]);\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 167,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "profile",
                    "defaultValue": "inject(BigProfileStore)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 122,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "scholingThreshold",
                    "defaultValue": "computed(() => this.answering()?.scholingThreshold ?? SCHOLING_THRESHOLD_DEFAULT)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Server-owned threshold from the policy endpoint (mirrored into machine state).</p>\n",
                    "line": 154,
                    "rawdescription": "\nServer-owned threshold from the policy endpoint (mirrored into machine state).",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "scholingZichtbaar",
                    "defaultValue": "computed(() => lageUren(this.answers(), this.scholingThreshold()))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Whether the inline scholing question is shown (and required) in the &#39;werk&#39; step.</p>\n",
                    "line": 156,
                    "rawdescription": "\nWhether the inline scholing question is shown (and required) in the 'werk' step.",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "set",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 191,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "shellStatus",
                    "defaultValue": "computed<WizardStatus>(() => {\n    switch (this.state().tag) {\n      case 'Answering': return 'editing';\n      case 'Submitting': return 'submitting';\n      case 'Submitted': return 'submitted';\n      case 'Failed': return 'failed';\n    }\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 173,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "state",
                    "defaultValue": "this.store.model",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 132,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "step",
                    "defaultValue": "computed<StepId>(() => STEPS[Math.min(this.cursor(), STEPS.length - 1)])",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 152,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "stepLabels",
                    "defaultValue": "[$localize`:@@intake.step.buitenland:Buitenland`, $localize`:@@intake.step.werk:Werk`, $localize`:@@intake.step.controle:Controle`]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 160,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "steps",
                    "defaultValue": "STEPS",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Public so the showcase can render the (fixed) step list next to the wizard.</p>\n",
                    "line": 149,
                    "rawdescription": "\nPublic so the showcase can render the (fixed) step list next to the wizard.",
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "stepTitle",
                    "defaultValue": "computed(() => this.stepTitles[this.step()])",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 166,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "stepTitles",
                    "defaultValue": "{\n    buitenland: $localize`:@@intake.title.buitenland:Werken in het buitenland`,\n    werk: $localize`:@@intake.title.werk:Werkervaring in Nederland`,\n    review: $localize`:@@intake.title.review:Controleren en indienen`,\n  }",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Record<StepId | string>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 161,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "store",
                    "defaultValue": "createStore<IntakeState, IntakeMsg>(initial, reduce)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 126,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "onPrimary",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 207,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onRetry",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 214,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "restart",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 219,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "runIfSubmitting",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 226,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nThe effect: when we enter Submitting, submit through the aanvraag lifecycle,\nflip the optimistic cross-page flag, then dispatch the outcome (commit/rollback).",
                    "description": "<p>The effect: when we enter Submitting, submit through the aanvraag lifecycle,\nflip the optimistic cross-page flag, then dispatch the outcome (commit/rollback).</p>\n",
                    "modifierKind": [
                        123,
                        134
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "FormsModule",
                    "type": "module"
                },
                {
                    "name": "FormFieldComponent",
                    "type": "component"
                },
                {
                    "name": "TextInputComponent",
                    "type": "component"
                },
                {
                    "name": "RadioGroupComponent",
                    "type": "component"
                },
                {
                    "name": "ButtonComponent",
                    "type": "component"
                },
                {
                    "name": "AlertComponent",
                    "type": "component"
                },
                {
                    "name": "DataRowComponent",
                    "type": "component"
                },
                {
                    "name": "ReviewSectionComponent",
                    "type": "component"
                },
                {
                    "name": "ConfirmationComponent",
                    "type": "component"
                },
                {
                    "name": "WizardShellComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Organism: a BRANCHING intake questionnaire. All state lives in one signal\ndriven by the pure <code>reduce</code> (intake.machine.ts). Which step renders is derived\nfrom the answers via <code>visibleSteps</code>, never stored — so editing an earlier\nanswer immediately changes the remaining steps. Answers are persisted to\nsessionStorage so a page reload keeps the user&#39;s progress (cleared on tab close).</p>\n",
            "rawdescription": "\nOrganism: a BRANCHING intake questionnaire. All state lives in one signal\ndriven by the pure `reduce` (intake.machine.ts). Which step renders is derived\nfrom the answers via `visibleSteps`, never stored — so editing an earlier\nanswer immediately changes the remaining steps. Answers are persisted to\nsessionStorage so a page reload keeps the user's progress (cleared on tab close).",
            "type": "component",
            "sourceCode": "import { Component, computed, effect, inject, input, untracked } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormFieldComponent } from '@shared/ui/form-field/form-field.component';\nimport { TextInputComponent } from '@shared/ui/text-input/text-input.component';\nimport { RadioGroupComponent, JA_NEE } from '@shared/ui/radio-group/radio-group.component';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { DataRowComponent } from '@shared/ui/data-row/data-row.component';\nimport { ReviewSectionComponent } from '@shared/ui/review-section/review-section.component';\nimport { ConfirmationComponent } from '@shared/ui/confirmation/confirmation.component';\nimport { WizardShellComponent, WizardError, WizardStatus, naarStapLabel } from '@shared/layout/wizard-shell/wizard-shell.component';\nimport { createStore } from '@shared/application/store';\nimport { whenTag } from '@shared/kernel/fp';\nimport { BigProfileStore } from '@registratie/application/big-profile.store';\nimport {\n  IntakeState,\n  IntakeMsg,\n  Answers,\n  StepId,\n  initial,\n  reduce,\n  STEPS,\n  lageUren,\n  hasProgress,\n  SCHOLING_THRESHOLD_DEFAULT,\n} from '@herregistratie/domain/intake.machine';\nimport { createDraftSync } from '@registratie/application/draft-sync';\nimport { IntakePolicyStore } from '@herregistratie/application/intake-policy.store';\n\n/** Organism: a BRANCHING intake questionnaire. All state lives in one signal\n    driven by the pure `reduce` (intake.machine.ts). Which step renders is derived\n    from the answers via `visibleSteps`, never stored — so editing an earlier\n    answer immediately changes the remaining steps. Answers are persisted to\n    sessionStorage so a page reload keeps the user's progress (cleared on tab close). */\n@Component({\n  selector: 'app-intake-wizard',\n  imports: [FormsModule, FormFieldComponent, TextInputComponent, RadioGroupComponent, ButtonComponent, AlertComponent, DataRowComponent, ReviewSectionComponent, ConfirmationComponent, WizardShellComponent],\n  template: `\n    <app-wizard-shell\n      [steps]=\"stepLabels\"\n      [current]=\"cursor()\"\n      [stepTitle]=\"stepTitle()\"\n      i18n-processName=\"@@intake.processName\" processName=\"Herregistratie-intake\"\n      [status]=\"shellStatus()\"\n      [primaryLabel]=\"primaryLabel()\"\n      [canGoBack]=\"cursor() > 0\"\n      [errors]=\"errorList()\"\n      [errorMessage]=\"errorMessage()\"\n      (primary)=\"onPrimary()\"\n      (back)=\"dispatch({ tag: 'Back' })\"\n      (cancel)=\"restart()\"\n      (retry)=\"onRetry()\"\n      (goToStep)=\"dispatch({ tag: 'GaNaarStap', cursor: $event })\">\n\n      @switch (step()) {\n        @case ('buitenland') {\n          <app-form-field i18n-label=\"@@intake.q.buitenland\" label=\"Heeft u de afgelopen 5 jaar buiten Nederland gewerkt?\" fieldId=\"buitenlandGewerkt\" required [error]=\"err('buitenlandGewerkt')\">\n            <app-radio-group name=\"buitenlandGewerkt\" [options]=\"jaNee\"\n              [ngModel]=\"answers().buitenlandGewerkt ?? ''\" (ngModelChange)=\"set('buitenlandGewerkt', $event)\" />\n          </app-form-field>\n          @if (answers().buitenlandGewerkt === 'ja') {\n            <app-form-field i18n-label=\"@@intake.q.land\" label=\"In welk land?\" fieldId=\"land\" required [error]=\"err('land')\">\n              <app-text-input inputId=\"land\" [ngModel]=\"answers().land ?? ''\" (ngModelChange)=\"set('land', $event)\" name=\"land\" i18n-placeholder=\"@@intake.q.landPlaceholder\" placeholder=\"bijv. België\" />\n            </app-form-field>\n            <app-form-field i18n-label=\"@@intake.q.buitenlandseUren\" label=\"Hoeveel uur heeft u daar gewerkt?\" fieldId=\"buitenlandseUren\" required [error]=\"err('buitenlandseUren')\">\n              <app-text-input inputId=\"buitenlandseUren\" [ngModel]=\"answers().buitenlandseUren ?? ''\" (ngModelChange)=\"set('buitenlandseUren', $event)\" name=\"buitenlandseUren\" i18n-placeholder=\"@@intake.q.buitenlandseUrenPlaceholder\" placeholder=\"bijv. 800\" />\n            </app-form-field>\n          }\n        }\n        @case ('werk') {\n          <app-form-field i18n-label=\"@@intake.q.urenNl\" label=\"Gewerkte uren in Nederland (afgelopen 5 jaar)\" fieldId=\"uren\" required [error]=\"err('uren')\">\n            <app-text-input inputId=\"uren\" [ngModel]=\"answers().uren ?? ''\" (ngModelChange)=\"set('uren', $event)\" name=\"uren\" i18n-placeholder=\"@@intake.q.urenNlPlaceholder\" placeholder=\"bijv. 4160\" />\n          </app-form-field>\n          @if (scholingZichtbaar()) {\n            <app-form-field i18n-label=\"@@intake.q.scholing\" label=\"U werkte relatief weinig uren. Heeft u aanvullende scholing gevolgd?\" fieldId=\"scholingGevolgd\" required [error]=\"err('scholingGevolgd')\">\n              <app-radio-group name=\"scholingGevolgd\" [options]=\"jaNee\"\n                [ngModel]=\"answers().scholingGevolgd ?? ''\" (ngModelChange)=\"set('scholingGevolgd', $event)\" />\n            </app-form-field>\n          }\n          @if (answers().scholingGevolgd === 'ja') {\n            <app-form-field i18n-label=\"@@intake.q.punten\" label=\"Behaalde nascholingspunten\" fieldId=\"punten\" required [error]=\"err('punten')\">\n              <app-text-input inputId=\"punten\" [ngModel]=\"answers().punten ?? ''\" (ngModelChange)=\"set('punten', $event)\" name=\"punten\" i18n-placeholder=\"@@intake.q.puntenPlaceholder\" placeholder=\"bijv. 200\" />\n            </app-form-field>\n          }\n        }\n        @case ('review') {\n          <app-alert type=\"info\" i18n=\"@@intake.review.controleer\">Controleer uw antwoorden en dien de aanvraag in.</app-alert>\n          <app-review-section i18n-heading=\"@@intake.sectie.buitenland\" heading=\"Buitenland\"\n            i18n-editAriaLabel=\"@@intake.buitenlandWijzigenAria\" editAriaLabel=\"Wijzigen buitenland\"\n            (edit)=\"dispatch({ tag: 'GaNaarStap', cursor: 0 })\">\n            <div app-data-row i18n-key=\"@@intake.review.buitenNl\" key=\"Buiten NL gewerkt\" [value]=\"answers().buitenlandGewerkt ?? '—'\"></div>\n            @if (answers().buitenlandGewerkt === 'ja') {\n              <div app-data-row i18n-key=\"@@intake.review.land\" key=\"Land\" [value]=\"answers().land ?? ''\"></div>\n              <div app-data-row i18n-key=\"@@intake.review.buitenlandseUren\" key=\"Buitenlandse uren\" [value]=\"answers().buitenlandseUren ?? ''\"></div>\n            }\n          </app-review-section>\n          <app-review-section class=\"app-section\" i18n-heading=\"@@intake.sectie.werk\" heading=\"Werk in Nederland\"\n            i18n-editAriaLabel=\"@@intake.werkWijzigenAria\" editAriaLabel=\"Wijzigen werk in Nederland\"\n            (edit)=\"dispatch({ tag: 'GaNaarStap', cursor: 1 })\">\n            <div app-data-row i18n-key=\"@@intake.review.urenNl\" key=\"Uren NL\" [value]=\"answers().uren ?? ''\"></div>\n            @if (scholingZichtbaar()) {\n              <div app-data-row i18n-key=\"@@intake.review.scholing\" key=\"Aanvullende scholing\" [value]=\"answers().scholingGevolgd ?? ''\"></div>\n            }\n            @if (answers().scholingGevolgd === 'ja') {\n              <div app-data-row i18n-key=\"@@intake.review.punten\" key=\"Nascholingspunten\" [value]=\"answers().punten ?? ''\"></div>\n            }\n          </app-review-section>\n        }\n      }\n\n      <div wizardSuccess>\n        <app-confirmation i18n-title=\"@@intake.success.title\" title=\"Uw aanvraag tot herregistratie is ontvangen\">\n          <div class=\"app-section\">\n            <app-button variant=\"secondary\" (click)=\"restart()\" i18n=\"@@intake.opnieuw\">Opnieuw beginnen</app-button>\n          </div>\n        </app-confirmation>\n      </div>\n    </app-wizard-shell>\n  `,\n})\nexport class IntakeWizardComponent {\n  private profile = inject(BigProfileStore);\n  // Server-owned policy (scholing threshold): fetched from the backend via the\n  // application facade, not hardcoded. The backend stays the authority on submit.\n  private policyStore = inject(IntakePolicyStore);\n  private store = createStore<IntakeState, IntakeMsg>(initial, reduce);\n\n  /** Optional seed so Storybook / the showcase can mount any state directly. */\n  seed = input<IntakeState>(initial);\n\n  readonly jaNee = JA_NEE;\n  readonly state = this.store.model;\n  readonly dispatch = this.store.dispatch;\n\n  // Backend draft-sync (replaces sessionStorage); the intake has no uploads.\n  private draftSync = createDraftSync({\n    type: 'intake',\n    snapshot: () => {\n      const s = this.state();\n      if (s.tag !== 'Answering' || !hasProgress(s)) return null;\n      return { draft: s, stepIndex: s.cursor, stepCount: STEPS.length, documentIds: [] };\n    },\n    onResume: (draft) => this.dispatch({ tag: 'Seed', state: draft as IntakeState }),\n    enabled: () => this.seed() === initial,\n  });\n\n  private answering = computed(() => whenTag(this.state(), 'Answering'));\n  /** Public so the showcase can render the (fixed) step list next to the wizard. */\n  readonly steps = STEPS;\n  protected cursor = computed(() => this.answering()?.cursor ?? 0);\n  protected answers = computed<Answers>(() => this.answering()?.answers ?? {});\n  protected step = computed<StepId>(() => STEPS[Math.min(this.cursor(), STEPS.length - 1)]);\n  /** Server-owned threshold from the policy endpoint (mirrored into machine state). */\n  protected scholingThreshold = computed(() => this.answering()?.scholingThreshold ?? SCHOLING_THRESHOLD_DEFAULT);\n  /** Whether the inline scholing question is shown (and required) in the 'werk' step. */\n  protected scholingZichtbaar = computed(() => lageUren(this.answers(), this.scholingThreshold()));\n  protected failedError = computed(() => whenTag(this.state(), 'Failed')?.error ?? '');\n\n  // --- Presentational wiring for the shared wizard shell ---------------------\n  readonly stepLabels = [$localize`:@@intake.step.buitenland:Buitenland`, $localize`:@@intake.step.werk:Werk`, $localize`:@@intake.step.controle:Controle`];\n  private stepTitles: Record<StepId, string> = {\n    buitenland: $localize`:@@intake.title.buitenland:Werken in het buitenland`,\n    werk: $localize`:@@intake.title.werk:Werkervaring in Nederland`,\n    review: $localize`:@@intake.title.review:Controleren en indienen`,\n  };\n  protected stepTitle = computed(() => this.stepTitles[this.step()]);\n  protected primaryLabel = computed(() => {\n    if (this.step() === 'review') return $localize`:@@intake.indienen:Aanvraag indienen`;\n    const next = this.cursor() + 1;\n    return naarStapLabel(next + 1, this.stepLabels[next]);\n  });\n  protected errorMessage = computed(() => $localize`:@@wizard.indienenMislukt:Indienen mislukt:` + ` ${this.failedError()}`);\n  protected shellStatus = computed<WizardStatus>(() => {\n    switch (this.state().tag) {\n      case 'Answering': return 'editing';\n      case 'Submitting': return 'submitting';\n      case 'Submitted': return 'submitted';\n      case 'Failed': return 'failed';\n    }\n  });\n  /** Current step's field errors, flattened for the shell's error summary. The\n      field ids match the answer keys, so the summary anchors jump to the field. */\n  protected errorList = computed<WizardError[]>(() => {\n    const e = this.answering()?.errors ?? {};\n    return (Object.keys(e) as (keyof Answers)[])\n      .filter((k) => e[k])\n      .map((k) => ({ id: k, message: e[k]! }));\n  });\n\n  protected err = (k: keyof Answers) => this.answering()?.errors[k] ?? '';\n  protected set = (key: keyof Answers, value: string) => this.dispatch({ tag: 'SetAnswer', key, value });\n\n  constructor() {\n    // An explicit seed (stories/tests) wins; otherwise resume the backend draft\n    // (`?aanvraag=<id>`) or start fresh. Persistence is the draftSync controller's job.\n    const seeded = this.seed();\n    queueMicrotask(() => (seeded !== initial ? this.dispatch({ tag: 'Seed', state: seeded }) : this.draftSync.resume()));\n    // Apply the server-owned threshold into machine state as it arrives. Track\n    // only the policy value; untrack the dispatch (it reads the state signal\n    // internally, which would otherwise make this effect loop on its own write).\n    effect(() => {\n      const scholingThreshold = this.policyStore.scholingThreshold();\n      untracked(() => this.dispatch({ tag: 'SetPolicy', scholingThreshold }));\n    });\n  }\n\n  onPrimary() {\n    const s = this.state();\n    if (s.tag !== 'Answering') return;\n    this.dispatch(this.step() === 'review' ? { tag: 'Submit' } : { tag: 'Next' });\n    this.runIfSubmitting();\n  }\n\n  onRetry() {\n    this.dispatch({ tag: 'Retry' });\n    this.runIfSubmitting();\n  }\n\n  restart() {\n    this.draftSync.reset();\n    this.dispatch({ tag: 'Seed', state: initial });\n  }\n\n  /** The effect: when we enter Submitting, submit through the aanvraag lifecycle,\n      flip the optimistic cross-page flag, then dispatch the outcome (commit/rollback). */\n  private async runIfSubmitting() {\n    const s = this.state();\n    if (s.tag !== 'Submitting') return;\n    this.profile.beginHerregistratie();\n    const r = await this.draftSync.submit({ uren: s.data.uren });\n    if (r.ok) {\n      this.dispatch({ tag: 'SubmitConfirmed' });\n      this.profile.confirmHerregistratie();\n    } else {\n      this.dispatch({ tag: 'SubmitFailed', error: r.error });\n      this.profile.rollbackHerregistratie();\n    }\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 191
            },
            "extends": []
        },
        {
            "name": "LetterBlockComponent",
            "id": "component-LetterBlockComponent-bad9b4ac9de4973a231c6f399d5926c79575170b913d4611e46b370fdba2c25987a8aaf566a879c7b57f3640d9d241d7101c2f0bc6026fd53e0a067a1428b2f9",
            "file": "src/app/brief/ui/letter-block/letter-block.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-letter-block",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:block}\n    .block{border-inline-start:var(--rhc-border-width-lg) solid var(--rhc-color-border-subtle);padding-inline-start:var(--rhc-space-max-md)}\n    .meta{display:flex;justify-content:space-between;align-items:center;gap:var(--rhc-space-max-md);margin-block-end:var(--rhc-space-max-sm)}\n    .controls{display:flex;gap:var(--rhc-space-max-sm)}\n  "
            ],
            "template": "<div class=\"block\">\n  <div class=\"meta\">\n    <span class=\"app-text-subtle\">{{ provenance() }}</span>\n    @if (editable()) {\n      <span class=\"controls\">\n        <app-button variant=\"subtle\" (click)=\"moved.emit(-1)\" i18n=\"@@brief.block.moveUp\">Omhoog</app-button>\n        <app-button variant=\"subtle\" (click)=\"moved.emit(1)\" i18n=\"@@brief.block.moveDown\">Omlaag</app-button>\n        <app-button variant=\"subtle\" (click)=\"removed.emit()\" i18n=\"@@brief.block.remove\">Verwijderen</app-button>\n      </span>\n    }\n  </div>\n  <app-rich-text-editor\n    [content]=\"block().content\"\n    [placeholders]=\"placeholders()\"\n    [editable]=\"editable()\"\n    (contentChanged)=\"contentChanged.emit($event)\" />\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "block",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LetterBlock",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 39,
                    "required": true
                },
                {
                    "name": "editable",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 41,
                    "required": false
                },
                {
                    "name": "placeholders",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "readonly PlaceholderOption[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 40,
                    "required": false
                }
            ],
            "outputsClass": [
                {
                    "name": "contentChanged",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RichTextBlock",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 42,
                    "required": false
                },
                {
                    "name": "moved",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "-1 | 1",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 44,
                    "required": false
                },
                {
                    "name": "removed",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 43,
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "provenance",
                    "defaultValue": "computed(() => {\n    const b = this.block();\n    if (b.type === 'freeText') return $localize`:@@brief.provenance.free:Vrije tekst`;\n    return b.edited\n      ? $localize`:@@brief.provenance.edited:Aangepaste standaardtekst`\n      : $localize`:@@brief.provenance.standard:Standaardtekst`;\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 46,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "RichTextEditorComponent",
                    "type": "component"
                },
                {
                    "name": "ButtonComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Molecule: one block in a section — its editor plus provenance + block controls.\nPresentational: emits content/remove/move events; the section maps them to messages.</p>\n",
            "rawdescription": "\nMolecule: one block in a section — its editor plus provenance + block controls.\nPresentational: emits content/remove/move events; the section maps them to messages.",
            "type": "component",
            "sourceCode": "import { Component, computed, input, output } from '@angular/core';\nimport { RichTextBlock } from '@shared/kernel/rich-text';\nimport { RichTextEditorComponent, PlaceholderOption } from '@shared/ui/rich-text-editor/rich-text-editor.component';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { LetterBlock } from '@brief/domain/brief';\n\n/** Molecule: one block in a section — its editor plus provenance + block controls.\n    Presentational: emits content/remove/move events; the section maps them to messages. */\n@Component({\n  selector: 'app-letter-block',\n  imports: [RichTextEditorComponent, ButtonComponent],\n  styles: [`\n    :host{display:block}\n    .block{border-inline-start:var(--rhc-border-width-lg) solid var(--rhc-color-border-subtle);padding-inline-start:var(--rhc-space-max-md)}\n    .meta{display:flex;justify-content:space-between;align-items:center;gap:var(--rhc-space-max-md);margin-block-end:var(--rhc-space-max-sm)}\n    .controls{display:flex;gap:var(--rhc-space-max-sm)}\n  `],\n  template: `\n    <div class=\"block\">\n      <div class=\"meta\">\n        <span class=\"app-text-subtle\">{{ provenance() }}</span>\n        @if (editable()) {\n          <span class=\"controls\">\n            <app-button variant=\"subtle\" (click)=\"moved.emit(-1)\" i18n=\"@@brief.block.moveUp\">Omhoog</app-button>\n            <app-button variant=\"subtle\" (click)=\"moved.emit(1)\" i18n=\"@@brief.block.moveDown\">Omlaag</app-button>\n            <app-button variant=\"subtle\" (click)=\"removed.emit()\" i18n=\"@@brief.block.remove\">Verwijderen</app-button>\n          </span>\n        }\n      </div>\n      <app-rich-text-editor\n        [content]=\"block().content\"\n        [placeholders]=\"placeholders()\"\n        [editable]=\"editable()\"\n        (contentChanged)=\"contentChanged.emit($event)\" />\n    </div>\n  `,\n})\nexport class LetterBlockComponent {\n  block = input.required<LetterBlock>();\n  placeholders = input<readonly PlaceholderOption[]>([]);\n  editable = input(false);\n  contentChanged = output<RichTextBlock>();\n  removed = output<void>();\n  moved = output<-1 | 1>();\n\n  protected provenance = computed(() => {\n    const b = this.block();\n    if (b.type === 'freeText') return $localize`:@@brief.provenance.free:Vrije tekst`;\n    return b.edited\n      ? $localize`:@@brief.provenance.edited:Aangepaste standaardtekst`\n      : $localize`:@@brief.provenance.standard:Standaardtekst`;\n  });\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:block}\n    .block{border-inline-start:var(--rhc-border-width-lg) solid var(--rhc-color-border-subtle);padding-inline-start:var(--rhc-space-max-md)}\n    .meta{display:flex;justify-content:space-between;align-items:center;gap:var(--rhc-space-max-md);margin-block-end:var(--rhc-space-max-sm)}\n    .controls{display:flex;gap:var(--rhc-space-max-sm)}\n  \n",
            "extends": []
        },
        {
            "name": "LetterComposerComponent",
            "id": "component-LetterComposerComponent-fb5f52a6baeed05e91d38f1cade19e37f1122c2ccf22f8a0661ddc4f2bc1c44b9d13e6f60adc0eccc1a7e0731682a7ab94c8a65ece7b0ce62bcdc82ad21e3f0b",
            "file": "src/app/brief/ui/letter-composer/letter-composer.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-letter-composer",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:block}\n    .head{display:flex;justify-content:space-between;align-items:center;gap:var(--rhc-space-max-md);flex-wrap:wrap;margin-block-end:var(--rhc-space-max-lg)}\n    .sections{display:grid;gap:var(--rhc-space-max-2xl)}\n    .panel{margin-block:var(--rhc-space-max-xl)}\n    .bar{display:flex;flex-wrap:wrap;gap:var(--rhc-space-max-md);align-items:center;margin-block-start:var(--rhc-space-max-xl)}\n  "
            ],
            "template": "<div class=\"head\">\n  <app-heading [level]=\"2\">{{ title() }}</app-heading>\n  <app-status-badge [label]=\"statusLabel()\" [color]=\"statusColor()\" />\n</div>\n\n@if (status() === 'rejected') {\n  <app-rejection-comments mode=\"show\" [comments]=\"rejectComments()\" />\n}\n\n@if (editable()) {\n  <div class=\"sections\">\n    @for (section of brief().sections; track section.sectionKey) {\n      <app-letter-section\n        [section]=\"section\"\n        [availablePassages]=\"availablePassages()\"\n        [placeholders]=\"menu()\"\n        [editable]=\"!section.locked\"\n        (edit)=\"edit.emit($event)\" />\n    }\n  </div>\n} @else {\n  <app-letter-preview [brief]=\"brief()\" [diagnostics]=\"diagnostics()\" />\n}\n\n<div class=\"panel\">\n  <app-diagnostics-panel [diagnostics]=\"diagnostics()\" (locate)=\"locate.emit($event)\" />\n</div>\n\n<div class=\"bar\">\n  @switch (status()) {\n    @case ('draft') {\n      @if (editable()) {\n        <app-button variant=\"primary\" [disabled]=\"!canSubmit() || busy()\" (click)=\"submit.emit()\">{{ submitLabel() }}</app-button>\n        @if (!canSubmit()) { <span class=\"app-text-subtle\">{{ submitHint() }}</span> }\n      }\n    }\n    @case ('rejected') {\n      @if (editable()) {\n        <app-button variant=\"primary\" [disabled]=\"!canSubmit() || busy()\" (click)=\"submit.emit()\">{{ resubmitLabel() }}</app-button>\n      }\n    }\n    @case ('submitted') {\n      @if (role() === 'approver') {\n        <app-button variant=\"primary\" [disabled]=\"busy()\" (click)=\"approve.emit()\">{{ approveLabel() }}</app-button>\n        <app-rejection-comments mode=\"entry\" [busy]=\"busy()\" (reject)=\"reject.emit($event)\" />\n      } @else {\n        <app-alert type=\"info\">{{ awaitingText() }}</app-alert>\n      }\n    }\n    @case ('approved') {\n      <app-button variant=\"primary\" [disabled]=\"busy()\" (click)=\"send.emit()\">{{ sendLabel() }}</app-button>\n    }\n    @case ('sent') {\n      <app-alert type=\"ok\">{{ sentText() }}</app-alert>\n    }\n  }\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "approveLabel",
                    "defaultValue": "$localize`:@@brief.approve:Goedkeuren`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 112,
                    "required": false
                },
                {
                    "name": "availablePassages",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "readonly LibraryPassage[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 94,
                    "required": false
                },
                {
                    "name": "awaitingText",
                    "defaultValue": "$localize`:@@brief.awaiting:De brief wacht op beoordeling door een collega.`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 114,
                    "required": false
                },
                {
                    "name": "brief",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Brief",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 93,
                    "required": true
                },
                {
                    "name": "busy",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 99,
                    "required": false
                },
                {
                    "name": "canSubmit",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 98,
                    "required": false
                },
                {
                    "name": "diagnostics",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "readonly Diagnostic[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 95,
                    "required": false
                },
                {
                    "name": "editable",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 96,
                    "required": false
                },
                {
                    "name": "resubmitLabel",
                    "defaultValue": "$localize`:@@brief.resubmit:Opnieuw indienen`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 110,
                    "required": false
                },
                {
                    "name": "role",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Role",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 97,
                    "required": true
                },
                {
                    "name": "sendLabel",
                    "defaultValue": "$localize`:@@brief.send:Versturen`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 113,
                    "required": false
                },
                {
                    "name": "sentText",
                    "defaultValue": "$localize`:@@brief.sent:De brief is verzonden.`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 115,
                    "required": false
                },
                {
                    "name": "submitHint",
                    "defaultValue": "$localize`:@@brief.submitHint:Vul eerst alle verplichte secties en los fouten op.`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 111,
                    "required": false
                },
                {
                    "name": "submitLabel",
                    "defaultValue": "$localize`:@@brief.submit:Indienen ter beoordeling`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 109,
                    "required": false
                },
                {
                    "name": "title",
                    "defaultValue": "$localize`:@@brief.title:Brief aan de zorgverlener`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 108,
                    "required": false
                }
            ],
            "outputsClass": [
                {
                    "name": "approve",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 103,
                    "required": false
                },
                {
                    "name": "edit",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "BriefMsg",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 101,
                    "required": false
                },
                {
                    "name": "locate",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Diagnostic",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 106,
                    "required": false
                },
                {
                    "name": "reject",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 104,
                    "required": false
                },
                {
                    "name": "send",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 105,
                    "required": false
                },
                {
                    "name": "submit",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 102,
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "menu",
                    "defaultValue": "computed<PlaceholderOption[]>(() =>\n    this.brief()\n      .placeholders.filter((p) => p.fillable !== false && !p.deprecated)\n      .map((p) => ({ key: p.key, label: p.label, autoResolvable: p.autoResolvable })),\n  )",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 125,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "rejectComments",
                    "defaultValue": "computed(() => {\n    const s = this.brief().status;\n    return s.tag === 'rejected' ? s.comments : '';\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 118,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "status",
                    "defaultValue": "computed(() => this.brief().status.tag)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 117,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "statusColor",
                    "defaultValue": "computed(() => {\n    switch (this.status()) {\n      case 'draft': return 'var(--rhc-color-border-strong)';\n      case 'submitted': return 'var(--rhc-color-oranje-500)';\n      case 'approved':\n      case 'sent': return 'var(--rhc-color-groen-500)';\n      case 'rejected': return 'var(--rhc-color-rood-500)';\n    }\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 141,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "statusLabel",
                    "defaultValue": "computed(() => {\n    switch (this.status()) {\n      case 'draft': return $localize`:@@brief.status.draft:Concept`;\n      case 'submitted': return $localize`:@@brief.status.submitted:Ter beoordeling`;\n      case 'approved': return $localize`:@@brief.status.approved:Goedgekeurd`;\n      case 'rejected': return $localize`:@@brief.status.rejected:Afgewezen`;\n      case 'sent': return $localize`:@@brief.status.sent:Verzonden`;\n    }\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 131,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "HeadingComponent",
                    "type": "component"
                },
                {
                    "name": "StatusBadgeComponent",
                    "type": "component"
                },
                {
                    "name": "ButtonComponent",
                    "type": "component"
                },
                {
                    "name": "AlertComponent",
                    "type": "component"
                },
                {
                    "name": "LetterSectionComponent",
                    "type": "component"
                },
                {
                    "name": "LetterPreviewComponent",
                    "type": "component"
                },
                {
                    "name": "DiagnosticsPanelComponent",
                    "type": "component"
                },
                {
                    "name": "RejectionCommentsComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Organism: the whole letter — status badge, the editable sections (drafter) or a\nread-only preview (approver / locked), the diagnostics panel, and the action bar\nappropriate to status × role. Presentational: emits edit + transition intents.</p>\n",
            "rawdescription": "\nOrganism: the whole letter — status badge, the editable sections (drafter) or a\nread-only preview (approver / locked), the diagnostics panel, and the action bar\nappropriate to status × role. Presentational: emits edit + transition intents.",
            "type": "component",
            "sourceCode": "import { Component, computed, input, output } from '@angular/core';\nimport { Role } from '@shared/domain/role';\nimport { HeadingComponent } from '@shared/ui/heading/heading.component';\nimport { StatusBadgeComponent } from '@shared/ui/status-badge/status-badge.component';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { PlaceholderOption } from '@shared/ui/rich-text-editor/rich-text-editor.component';\nimport { Brief, LibraryPassage } from '@brief/domain/brief';\nimport { Diagnostic } from '@brief/domain/placeholders';\nimport { BriefMsg } from '@brief/domain/brief.machine';\nimport { LetterSectionComponent } from '@brief/ui/letter-section/letter-section.component';\nimport { LetterPreviewComponent } from '@brief/ui/letter-preview/letter-preview.component';\nimport { DiagnosticsPanelComponent } from '@brief/ui/diagnostics-panel/diagnostics-panel.component';\nimport { RejectionCommentsComponent } from '@brief/ui/rejection-comments/rejection-comments.component';\n\n/** Organism: the whole letter — status badge, the editable sections (drafter) or a\n    read-only preview (approver / locked), the diagnostics panel, and the action bar\n    appropriate to status × role. Presentational: emits edit + transition intents. */\n@Component({\n  selector: 'app-letter-composer',\n  imports: [\n    HeadingComponent, StatusBadgeComponent, ButtonComponent, AlertComponent,\n    LetterSectionComponent, LetterPreviewComponent, DiagnosticsPanelComponent, RejectionCommentsComponent,\n  ],\n  styles: [`\n    :host{display:block}\n    .head{display:flex;justify-content:space-between;align-items:center;gap:var(--rhc-space-max-md);flex-wrap:wrap;margin-block-end:var(--rhc-space-max-lg)}\n    .sections{display:grid;gap:var(--rhc-space-max-2xl)}\n    .panel{margin-block:var(--rhc-space-max-xl)}\n    .bar{display:flex;flex-wrap:wrap;gap:var(--rhc-space-max-md);align-items:center;margin-block-start:var(--rhc-space-max-xl)}\n  `],\n  template: `\n    <div class=\"head\">\n      <app-heading [level]=\"2\">{{ title() }}</app-heading>\n      <app-status-badge [label]=\"statusLabel()\" [color]=\"statusColor()\" />\n    </div>\n\n    @if (status() === 'rejected') {\n      <app-rejection-comments mode=\"show\" [comments]=\"rejectComments()\" />\n    }\n\n    @if (editable()) {\n      <div class=\"sections\">\n        @for (section of brief().sections; track section.sectionKey) {\n          <app-letter-section\n            [section]=\"section\"\n            [availablePassages]=\"availablePassages()\"\n            [placeholders]=\"menu()\"\n            [editable]=\"!section.locked\"\n            (edit)=\"edit.emit($event)\" />\n        }\n      </div>\n    } @else {\n      <app-letter-preview [brief]=\"brief()\" [diagnostics]=\"diagnostics()\" />\n    }\n\n    <div class=\"panel\">\n      <app-diagnostics-panel [diagnostics]=\"diagnostics()\" (locate)=\"locate.emit($event)\" />\n    </div>\n\n    <div class=\"bar\">\n      @switch (status()) {\n        @case ('draft') {\n          @if (editable()) {\n            <app-button variant=\"primary\" [disabled]=\"!canSubmit() || busy()\" (click)=\"submit.emit()\">{{ submitLabel() }}</app-button>\n            @if (!canSubmit()) { <span class=\"app-text-subtle\">{{ submitHint() }}</span> }\n          }\n        }\n        @case ('rejected') {\n          @if (editable()) {\n            <app-button variant=\"primary\" [disabled]=\"!canSubmit() || busy()\" (click)=\"submit.emit()\">{{ resubmitLabel() }}</app-button>\n          }\n        }\n        @case ('submitted') {\n          @if (role() === 'approver') {\n            <app-button variant=\"primary\" [disabled]=\"busy()\" (click)=\"approve.emit()\">{{ approveLabel() }}</app-button>\n            <app-rejection-comments mode=\"entry\" [busy]=\"busy()\" (reject)=\"reject.emit($event)\" />\n          } @else {\n            <app-alert type=\"info\">{{ awaitingText() }}</app-alert>\n          }\n        }\n        @case ('approved') {\n          <app-button variant=\"primary\" [disabled]=\"busy()\" (click)=\"send.emit()\">{{ sendLabel() }}</app-button>\n        }\n        @case ('sent') {\n          <app-alert type=\"ok\">{{ sentText() }}</app-alert>\n        }\n      }\n    </div>\n  `,\n})\nexport class LetterComposerComponent {\n  brief = input.required<Brief>();\n  availablePassages = input<readonly LibraryPassage[]>([]);\n  diagnostics = input<readonly Diagnostic[]>([]);\n  editable = input(false);\n  role = input.required<Role>();\n  canSubmit = input(false);\n  busy = input(false);\n\n  edit = output<BriefMsg>();\n  submit = output<void>();\n  approve = output<void>();\n  reject = output<string>();\n  send = output<void>();\n  locate = output<Diagnostic>();\n\n  title = input($localize`:@@brief.title:Brief aan de zorgverlener`);\n  submitLabel = input($localize`:@@brief.submit:Indienen ter beoordeling`);\n  resubmitLabel = input($localize`:@@brief.resubmit:Opnieuw indienen`);\n  submitHint = input($localize`:@@brief.submitHint:Vul eerst alle verplichte secties en los fouten op.`);\n  approveLabel = input($localize`:@@brief.approve:Goedkeuren`);\n  sendLabel = input($localize`:@@brief.send:Versturen`);\n  awaitingText = input($localize`:@@brief.awaiting:De brief wacht op beoordeling door een collega.`);\n  sentText = input($localize`:@@brief.sent:De brief is verzonden.`);\n\n  protected status = computed(() => this.brief().status.tag);\n  protected rejectComments = computed(() => {\n    const s = this.brief().status;\n    return s.tag === 'rejected' ? s.comments : '';\n  });\n\n  // The insert menu offers only valid, fillable, non-deprecated fields — inserting an\n  // unknown/retired key is structurally impossible.\n  protected menu = computed<PlaceholderOption[]>(() =>\n    this.brief()\n      .placeholders.filter((p) => p.fillable !== false && !p.deprecated)\n      .map((p) => ({ key: p.key, label: p.label, autoResolvable: p.autoResolvable })),\n  );\n\n  protected statusLabel = computed(() => {\n    switch (this.status()) {\n      case 'draft': return $localize`:@@brief.status.draft:Concept`;\n      case 'submitted': return $localize`:@@brief.status.submitted:Ter beoordeling`;\n      case 'approved': return $localize`:@@brief.status.approved:Goedgekeurd`;\n      case 'rejected': return $localize`:@@brief.status.rejected:Afgewezen`;\n      case 'sent': return $localize`:@@brief.status.sent:Verzonden`;\n    }\n  });\n\n  protected statusColor = computed(() => {\n    switch (this.status()) {\n      case 'draft': return 'var(--rhc-color-border-strong)';\n      case 'submitted': return 'var(--rhc-color-oranje-500)';\n      case 'approved':\n      case 'sent': return 'var(--rhc-color-groen-500)';\n      case 'rejected': return 'var(--rhc-color-rood-500)';\n    }\n  });\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:block}\n    .head{display:flex;justify-content:space-between;align-items:center;gap:var(--rhc-space-max-md);flex-wrap:wrap;margin-block-end:var(--rhc-space-max-lg)}\n    .sections{display:grid;gap:var(--rhc-space-max-2xl)}\n    .panel{margin-block:var(--rhc-space-max-xl)}\n    .bar{display:flex;flex-wrap:wrap;gap:var(--rhc-space-max-md);align-items:center;margin-block-start:var(--rhc-space-max-xl)}\n  \n",
            "extends": []
        },
        {
            "name": "LetterPreviewComponent",
            "id": "component-LetterPreviewComponent-08a5213eebe8fcf41f586b455f616058353145c162dd36edf38c8d4a6abdb5aa67a0408273011670ced83a9c5da6b91fa96395b9727303ca4448066b4eef2c25",
            "file": "src/app/brief/ui/letter-preview/letter-preview.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-letter-preview",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:block}\n    .toolbar{display:flex;justify-content:flex-end;margin-block-end:var(--rhc-space-max-sm)}\n    .letter{background:var(--rhc-color-wit);border:var(--rhc-border-width-sm) solid var(--rhc-color-border-default);border-radius:var(--rhc-border-radius-md);padding:var(--rhc-space-max-2xl)}\n    section{margin-block-end:var(--rhc-space-max-xl)}\n    p{margin:0 0 var(--rhc-space-max-sm)}\n    ul,ol{margin:0 0 var(--rhc-space-max-sm);padding-inline-start:1.4em}\n  "
            ],
            "template": "<ng-template #line let-nodes>\n  @for (node of nodes; track $index) {\n    @switch (node.type) {\n      @case ('text') { <span>{{ node.text }}</span> }\n      @case ('lineBreak') { <br> }\n      @case ('placeholder') {\n        @if (showSample() && autoFor(node.key)) {\n          <span>{{ sampleFor(node.key) }}</span>\n        } @else {\n          <app-placeholder-chip [label]=\"labelFor(node.key)\" [autoResolvable]=\"autoFor(node.key)\" [state]=\"stateFor(node.key)\" />\n        }\n      }\n    }\n  }\n</ng-template>\n\n<div class=\"toolbar\">\n  <app-button variant=\"subtle\" (click)=\"showSample.set(!showSample())\" [attr.aria-pressed]=\"showSample()\">\n    {{ showSample() ? hideSampleLabel() : showSampleLabel() }}\n  </app-button>\n</div>\n\n<div class=\"letter\">\n  @for (section of brief().sections; track section.sectionKey) {\n    <section>\n      <app-heading [level]=\"3\">{{ section.title }}</app-heading>\n      @for (block of section.blocks; track block.blockId) {\n        @for (seg of segmentsOf(block); track $index) {\n          @if (seg.list === 'bullet') {\n            <ul>@for (para of seg.items; track $index) { <li><ng-container [ngTemplateOutlet]=\"line\" [ngTemplateOutletContext]=\"{ $implicit: para.nodes }\" /></li>}</ul>\n          } @else if (seg.list === 'number') {\n            <ol>@for (para of seg.items; track $index) { <li><ng-container [ngTemplateOutlet]=\"line\" [ngTemplateOutletContext]=\"{ $implicit: para.nodes }\" /></li>}</ol>\n          } @else {\n            <p><ng-container [ngTemplateOutlet]=\"line\" [ngTemplateOutletContext]=\"{ $implicit: seg.items[0].nodes }\" /></p>\n          }\n        }\n      }\n    </section>\n  }\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "brief",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Brief",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 89,
                    "required": true
                },
                {
                    "name": "diagnostics",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "readonly Diagnostic[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 90,
                    "required": false
                },
                {
                    "name": "hideSampleLabel",
                    "defaultValue": "$localize`:@@brief.preview.hideSample:Testwaarden verbergen`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 93,
                    "required": false
                },
                {
                    "name": "showSampleLabel",
                    "defaultValue": "$localize`:@@brief.preview.showSample:Voorbeeld met testwaarden`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 92,
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "autoFor",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 111,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "defs",
                    "defaultValue": "computed(() => new Map(this.brief().placeholders.map((p) => [p.key, p])))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 98,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "labelFor",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 110,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "sampleFor",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 113,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "segmentsOf",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 109,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "showSample",
                    "defaultValue": "signal(false)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 95,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "stateFor",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 112,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "today",
                    "defaultValue": "new Date().toLocaleDateString('nl-NL', { day: 'numeric', month: 'long', year: 'numeric' })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 96,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "worst",
                    "defaultValue": "computed(() => {\n    const m = new Map<string, 'error' | 'warning'>();\n    for (const d of this.diagnostics()) {\n      if (!d.placeholderKey) continue;\n      if (d.severity === 'error') m.set(d.placeholderKey, 'error');\n      else if (!m.has(d.placeholderKey)) m.set(d.placeholderKey, 'warning');\n    }\n    return m;\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 99,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "NgTemplateOutlet"
                },
                {
                    "name": "HeadingComponent",
                    "type": "component"
                },
                {
                    "name": "ButtonComponent",
                    "type": "component"
                },
                {
                    "name": "PlaceholderChipComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Organism: read-only rendering of the letter as the approver/recipient sees it.\nPlaceholders show as labelled chips (values are resolved server-side only at send);\na chip flagged by the linter shows its error/warning state. The &quot;Voorbeeld&quot; toggle\nfills auto-resolvable placeholders with sample values to preview the sent result.</p>\n",
            "rawdescription": "\nOrganism: read-only rendering of the letter as the approver/recipient sees it.\nPlaceholders show as labelled chips (values are resolved server-side only at send);\na chip flagged by the linter shows its error/warning state. The \"Voorbeeld\" toggle\nfills auto-resolvable placeholders with sample values to preview the sent result.",
            "type": "component",
            "sourceCode": "import { Component, computed, input, signal } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { HeadingComponent } from '@shared/ui/heading/heading.component';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { PlaceholderChipComponent } from '@shared/ui/placeholder-chip/placeholder-chip.component';\nimport { Paragraph } from '@shared/kernel/rich-text';\nimport { Brief, LetterBlock } from '@brief/domain/brief';\nimport { Diagnostic } from '@brief/domain/placeholders';\n\n/** A run of consecutive lines to render together: a list (bullet/number) or a single plain line. */\ntype PreviewSegment = { readonly list: 'bullet' | 'number' | null; readonly items: readonly Paragraph[] };\n\nfunction groupParagraphs(paras: readonly Paragraph[]): PreviewSegment[] {\n  const out: { list: 'bullet' | 'number' | null; items: Paragraph[] }[] = [];\n  for (const para of paras) {\n    const kind = para.list ?? null;\n    const last = out[out.length - 1];\n    if (kind && last && last.list === kind) last.items.push(para);\n    else out.push({ list: kind, items: [para] });\n  }\n  return out;\n}\n\n// Illustrative values for the \"Voorbeeld\" toggle — what send resolves server-side.\nconst SAMPLE_VALUES: Record<string, string> = {\n  naam_zorgverlener: 'J. Jansen',\n  big_nummer: '12345678901',\n};\n\n/** Organism: read-only rendering of the letter as the approver/recipient sees it.\n    Placeholders show as labelled chips (values are resolved server-side only at send);\n    a chip flagged by the linter shows its error/warning state. The \"Voorbeeld\" toggle\n    fills auto-resolvable placeholders with sample values to preview the sent result. */\n@Component({\n  selector: 'app-letter-preview',\n  imports: [NgTemplateOutlet, HeadingComponent, ButtonComponent, PlaceholderChipComponent],\n  styles: [`\n    :host{display:block}\n    .toolbar{display:flex;justify-content:flex-end;margin-block-end:var(--rhc-space-max-sm)}\n    .letter{background:var(--rhc-color-wit);border:var(--rhc-border-width-sm) solid var(--rhc-color-border-default);border-radius:var(--rhc-border-radius-md);padding:var(--rhc-space-max-2xl)}\n    section{margin-block-end:var(--rhc-space-max-xl)}\n    p{margin:0 0 var(--rhc-space-max-sm)}\n    ul,ol{margin:0 0 var(--rhc-space-max-sm);padding-inline-start:1.4em}\n  `],\n  template: `\n    <ng-template #line let-nodes>\n      @for (node of nodes; track $index) {\n        @switch (node.type) {\n          @case ('text') { <span>{{ node.text }}</span> }\n          @case ('lineBreak') { <br> }\n          @case ('placeholder') {\n            @if (showSample() && autoFor(node.key)) {\n              <span>{{ sampleFor(node.key) }}</span>\n            } @else {\n              <app-placeholder-chip [label]=\"labelFor(node.key)\" [autoResolvable]=\"autoFor(node.key)\" [state]=\"stateFor(node.key)\" />\n            }\n          }\n        }\n      }\n    </ng-template>\n\n    <div class=\"toolbar\">\n      <app-button variant=\"subtle\" (click)=\"showSample.set(!showSample())\" [attr.aria-pressed]=\"showSample()\">\n        {{ showSample() ? hideSampleLabel() : showSampleLabel() }}\n      </app-button>\n    </div>\n\n    <div class=\"letter\">\n      @for (section of brief().sections; track section.sectionKey) {\n        <section>\n          <app-heading [level]=\"3\">{{ section.title }}</app-heading>\n          @for (block of section.blocks; track block.blockId) {\n            @for (seg of segmentsOf(block); track $index) {\n              @if (seg.list === 'bullet') {\n                <ul>@for (para of seg.items; track $index) { <li><ng-container [ngTemplateOutlet]=\"line\" [ngTemplateOutletContext]=\"{ $implicit: para.nodes }\" /></li>}</ul>\n              } @else if (seg.list === 'number') {\n                <ol>@for (para of seg.items; track $index) { <li><ng-container [ngTemplateOutlet]=\"line\" [ngTemplateOutletContext]=\"{ $implicit: para.nodes }\" /></li>}</ol>\n              } @else {\n                <p><ng-container [ngTemplateOutlet]=\"line\" [ngTemplateOutletContext]=\"{ $implicit: seg.items[0].nodes }\" /></p>\n              }\n            }\n          }\n        </section>\n      }\n    </div>\n  `,\n})\nexport class LetterPreviewComponent {\n  brief = input.required<Brief>();\n  diagnostics = input<readonly Diagnostic[]>([]);\n\n  showSampleLabel = input($localize`:@@brief.preview.showSample:Voorbeeld met testwaarden`);\n  hideSampleLabel = input($localize`:@@brief.preview.hideSample:Testwaarden verbergen`);\n\n  protected showSample = signal(false);\n  private today = new Date().toLocaleDateString('nl-NL', { day: 'numeric', month: 'long', year: 'numeric' });\n\n  private defs = computed(() => new Map(this.brief().placeholders.map((p) => [p.key, p])));\n  private worst = computed(() => {\n    const m = new Map<string, 'error' | 'warning'>();\n    for (const d of this.diagnostics()) {\n      if (!d.placeholderKey) continue;\n      if (d.severity === 'error') m.set(d.placeholderKey, 'error');\n      else if (!m.has(d.placeholderKey)) m.set(d.placeholderKey, 'warning');\n    }\n    return m;\n  });\n\n  protected segmentsOf = (block: LetterBlock) => groupParagraphs(block.content.paragraphs);\n  protected labelFor = (key: string) => this.defs().get(key)?.label ?? key;\n  protected autoFor = (key: string) => this.defs().get(key)?.autoResolvable ?? false;\n  protected stateFor = (key: string): 'ok' | 'warning' | 'error' => this.worst().get(key) ?? 'ok';\n  protected sampleFor = (key: string) => SAMPLE_VALUES[key] ?? (key === 'datum' ? this.today : this.labelFor(key));\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:block}\n    .toolbar{display:flex;justify-content:flex-end;margin-block-end:var(--rhc-space-max-sm)}\n    .letter{background:var(--rhc-color-wit);border:var(--rhc-border-width-sm) solid var(--rhc-color-border-default);border-radius:var(--rhc-border-radius-md);padding:var(--rhc-space-max-2xl)}\n    section{margin-block-end:var(--rhc-space-max-xl)}\n    p{margin:0 0 var(--rhc-space-max-sm)}\n    ul,ol{margin:0 0 var(--rhc-space-max-sm);padding-inline-start:1.4em}\n  \n",
            "extends": []
        },
        {
            "name": "LetterSectionComponent",
            "id": "component-LetterSectionComponent-6bd0ce926f6e6bf1df8da81ba8a7c67bdba4cd6639dea9c13750680810a28a8a2b5739daae4c9dbe7d0bde1366ef7014415e6c4324df284ec8a4bf29cd43c005",
            "file": "src/app/brief/ui/letter-section/letter-section.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-letter-section",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:block}\n    .blocks{display:grid;gap:var(--rhc-space-max-lg);margin-block:var(--rhc-space-max-md)}\n    .actions{display:flex;flex-wrap:wrap;gap:var(--rhc-space-max-sm)}\n    .required{color:var(--rhc-color-foreground-subtle)}\n    .empty{color:var(--rhc-color-foreground-subtle);font-style:italic}\n  "
            ],
            "template": "<app-heading [level]=\"3\">\n  {{ section().title }}\n  @if (section().required) { <span class=\"required\">· {{ requiredLabel() }}</span> }\n</app-heading>\n\n<div class=\"blocks\">\n  @for (block of section().blocks; track block.blockId) {\n    <app-letter-block\n      [block]=\"block\"\n      [placeholders]=\"placeholders()\"\n      [editable]=\"editable()\"\n      (contentChanged)=\"onContent(block.blockId, $event)\"\n      (removed)=\"edit.emit({ tag: 'BlockRemoved', blockId: block.blockId })\"\n      (moved)=\"onMove(block.blockId, $event)\" />\n  } @empty {\n    <p class=\"empty\">{{ emptyLabel() }}</p>\n  }\n</div>\n\n@if (editable()) {\n  <div class=\"actions\">\n    <app-button variant=\"secondary\" (click)=\"pickerOpen.set(!pickerOpen())\">{{ addPassageLabel() }}</app-button>\n    <app-button variant=\"subtle\" (click)=\"edit.emit({ tag: 'FreeTextBlockAdded', sectionKey: section().sectionKey })\">{{ addFreeLabel() }}</app-button>\n  </div>\n  @if (pickerOpen()) {\n    <app-passage-picker [passages]=\"sectionPassages()\" (insert)=\"onInsert($event)\" />\n  }\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "addFreeLabel",
                    "defaultValue": "$localize`:@@brief.section.addFree:Vrije tekst toevoegen`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 65,
                    "required": false
                },
                {
                    "name": "addPassageLabel",
                    "defaultValue": "$localize`:@@brief.section.addPassage:Standaardtekst toevoegen`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 64,
                    "required": false
                },
                {
                    "name": "availablePassages",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "readonly LibraryPassage[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 57,
                    "required": false
                },
                {
                    "name": "editable",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 59,
                    "required": false
                },
                {
                    "name": "emptyLabel",
                    "defaultValue": "$localize`:@@brief.section.empty:Nog geen tekst in deze sectie.`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 63,
                    "required": false
                },
                {
                    "name": "placeholders",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "readonly PlaceholderOption[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 58,
                    "required": false
                },
                {
                    "name": "requiredLabel",
                    "defaultValue": "$localize`:@@brief.section.required:verplicht`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 62,
                    "required": false
                },
                {
                    "name": "section",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LetterSection",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 56,
                    "required": true
                }
            ],
            "outputsClass": [
                {
                    "name": "edit",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "BriefMsg",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 60,
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "pickerOpen",
                    "defaultValue": "signal(false)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 67,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "sectionPassages",
                    "defaultValue": "computed(() => this.availablePassages().filter((p) => p.sectionKey === this.section().sectionKey))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 68,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "onContent",
                    "args": [
                        {
                            "name": "blockId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "content",
                            "type": "RichTextBlock",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 70,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "blockId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "content",
                            "type": "RichTextBlock",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "onInsert",
                    "args": [
                        {
                            "name": "passages",
                            "type": "LibraryPassage[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 79,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "passages",
                            "type": "LibraryPassage[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "onMove",
                    "args": [
                        {
                            "name": "blockId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "direction",
                            "type": "unknown | \"1\"",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 74,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "blockId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "direction",
                            "type": "unknown | \"1\"",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "ButtonComponent",
                    "type": "component"
                },
                {
                    "name": "HeadingComponent",
                    "type": "component"
                },
                {
                    "name": "LetterBlockComponent",
                    "type": "component"
                },
                {
                    "name": "PassagePickerComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Organism: one template section — its ordered blocks plus (when editable) the\nadd-passages and add-free-text actions. Maps child events to <code>BriefMsg</code>s; sections\nthemselves can never be added/removed/reordered (no message exists for it).</p>\n",
            "rawdescription": "\nOrganism: one template section — its ordered blocks plus (when editable) the\nadd-passages and add-free-text actions. Maps child events to `BriefMsg`s; sections\nthemselves can never be added/removed/reordered (no message exists for it).",
            "type": "component",
            "sourceCode": "import { Component, computed, input, output, signal } from '@angular/core';\nimport { RichTextBlock } from '@shared/kernel/rich-text';\nimport { PlaceholderOption } from '@shared/ui/rich-text-editor/rich-text-editor.component';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { HeadingComponent } from '@shared/ui/heading/heading.component';\nimport { LetterSection, LibraryPassage } from '@brief/domain/brief';\nimport { BriefMsg } from '@brief/domain/brief.machine';\nimport { LetterBlockComponent } from '@brief/ui/letter-block/letter-block.component';\nimport { PassagePickerComponent } from '@brief/ui/passage-picker/passage-picker.component';\n\n/** Organism: one template section — its ordered blocks plus (when editable) the\n    add-passages and add-free-text actions. Maps child events to `BriefMsg`s; sections\n    themselves can never be added/removed/reordered (no message exists for it). */\n@Component({\n  selector: 'app-letter-section',\n  imports: [ButtonComponent, HeadingComponent, LetterBlockComponent, PassagePickerComponent],\n  styles: [`\n    :host{display:block}\n    .blocks{display:grid;gap:var(--rhc-space-max-lg);margin-block:var(--rhc-space-max-md)}\n    .actions{display:flex;flex-wrap:wrap;gap:var(--rhc-space-max-sm)}\n    .required{color:var(--rhc-color-foreground-subtle)}\n    .empty{color:var(--rhc-color-foreground-subtle);font-style:italic}\n  `],\n  template: `\n    <app-heading [level]=\"3\">\n      {{ section().title }}\n      @if (section().required) { <span class=\"required\">· {{ requiredLabel() }}</span> }\n    </app-heading>\n\n    <div class=\"blocks\">\n      @for (block of section().blocks; track block.blockId) {\n        <app-letter-block\n          [block]=\"block\"\n          [placeholders]=\"placeholders()\"\n          [editable]=\"editable()\"\n          (contentChanged)=\"onContent(block.blockId, $event)\"\n          (removed)=\"edit.emit({ tag: 'BlockRemoved', blockId: block.blockId })\"\n          (moved)=\"onMove(block.blockId, $event)\" />\n      } @empty {\n        <p class=\"empty\">{{ emptyLabel() }}</p>\n      }\n    </div>\n\n    @if (editable()) {\n      <div class=\"actions\">\n        <app-button variant=\"secondary\" (click)=\"pickerOpen.set(!pickerOpen())\">{{ addPassageLabel() }}</app-button>\n        <app-button variant=\"subtle\" (click)=\"edit.emit({ tag: 'FreeTextBlockAdded', sectionKey: section().sectionKey })\">{{ addFreeLabel() }}</app-button>\n      </div>\n      @if (pickerOpen()) {\n        <app-passage-picker [passages]=\"sectionPassages()\" (insert)=\"onInsert($event)\" />\n      }\n    }\n  `,\n})\nexport class LetterSectionComponent {\n  section = input.required<LetterSection>();\n  availablePassages = input<readonly LibraryPassage[]>([]);\n  placeholders = input<readonly PlaceholderOption[]>([]);\n  editable = input(false);\n  edit = output<BriefMsg>();\n\n  requiredLabel = input($localize`:@@brief.section.required:verplicht`);\n  emptyLabel = input($localize`:@@brief.section.empty:Nog geen tekst in deze sectie.`);\n  addPassageLabel = input($localize`:@@brief.section.addPassage:Standaardtekst toevoegen`);\n  addFreeLabel = input($localize`:@@brief.section.addFree:Vrije tekst toevoegen`);\n\n  protected pickerOpen = signal(false);\n  protected sectionPassages = computed(() => this.availablePassages().filter((p) => p.sectionKey === this.section().sectionKey));\n\n  protected onContent(blockId: string, content: RichTextBlock) {\n    this.edit.emit({ tag: 'BlockContentEdited', blockId, content });\n  }\n\n  protected onMove(blockId: string, direction: -1 | 1) {\n    const i = this.section().blocks.findIndex((b) => b.blockId === blockId);\n    this.edit.emit({ tag: 'BlockMovedWithinSection', blockId, toIndex: i + direction });\n  }\n\n  protected onInsert(passages: LibraryPassage[]) {\n    this.edit.emit({ tag: 'PassagesInserted', sectionKey: this.section().sectionKey, passages });\n    this.pickerOpen.set(false);\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:block}\n    .blocks{display:grid;gap:var(--rhc-space-max-lg);margin-block:var(--rhc-space-max-md)}\n    .actions{display:flex;flex-wrap:wrap;gap:var(--rhc-space-max-sm)}\n    .required{color:var(--rhc-color-foreground-subtle)}\n    .empty{color:var(--rhc-color-foreground-subtle);font-style:italic}\n  \n",
            "extends": []
        },
        {
            "name": "LinkComponent",
            "id": "component-LinkComponent-c6548b20a8dde627ac5634a68c14cb708a64aff2dda818c4c3b5c5ca6508fe505ab4b319393d936834318aff30b9ea7b48b68b969d43d85cdc94fc5365069f6f",
            "file": "src/app/shared/ui/link/link.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-link",
            "styleUrls": [],
            "styles": [],
            "template": "<a [routerLink]=\"to()\" class=\"link-primary\"><ng-content /></a>",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "to",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 11,
                    "required": true
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "RouterLink"
                }
            ],
            "description": "<p>Atom: link. Internal router link; CIBG/Bootstrap styles bare anchors.</p>\n",
            "rawdescription": "\nAtom: link. Internal router link; CIBG/Bootstrap styles bare anchors.",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\n/** Atom: link. Internal router link; CIBG/Bootstrap styles bare anchors. */\n@Component({\n  selector: 'app-link',\n  imports: [RouterLink],\n  template: `<a [routerLink]=\"to()\" class=\"link-primary\"><ng-content /></a>`,\n})\nexport class LinkComponent {\n  to = input.required<string>();\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "LoginFormComponent",
            "id": "component-LoginFormComponent-e64c93fc4f9e4b91eaa9cd4886e572100a5f7a9e1cc6dadd249fcbefd957a0ef038be6f5a284acda7578a4f9b0459e1787e43b41db35e0123036820c0f79b579",
            "file": "src/app/auth/ui/login-form/login-form.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-login-form",
            "styleUrls": [],
            "styles": [],
            "template": "<form (ngSubmit)=\"submitted.emit(bsn)\" class=\"form-horizontal\">\n  <div class=\"form-header\">\n    <div class=\"form-action\"><span class=\"meta\" i18n=\"@@form.verplichteVelden\">* verplichte velden</span></div>\n  </div>\n\n  <app-form-field i18n-label=\"@@login.bsnLabel\" label=\"BSN\" fieldId=\"bsn\" required i18n-description=\"@@login.bsnDescription\" description=\"9 cijfers (demo: vul iets in)\">\n    <app-text-input inputId=\"bsn\" [(ngModel)]=\"bsn\" name=\"bsn\" placeholder=\"123456789\" />\n  </app-form-field>\n\n  <app-form-field i18n-label=\"@@login.wachtwoordLabel\" label=\"Wachtwoord\" fieldId=\"pw\" required>\n    <app-text-input inputId=\"pw\" type=\"password\" [(ngModel)]=\"password\" name=\"pw\" />\n  </app-form-field>\n\n  <app-button type=\"submit\" variant=\"primary\" i18n=\"@@login.submit\">Inloggen met DigiD</app-button>\n</form>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [
                {
                    "name": "submitted",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 32,
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "bsn",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 30
                },
                {
                    "name": "password",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 31
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "FormsModule",
                    "type": "module"
                },
                {
                    "name": "FormFieldComponent",
                    "type": "component"
                },
                {
                    "name": "TextInputComponent",
                    "type": "component"
                },
                {
                    "name": "ButtonComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Organism: DigiD-style mock login. No real auth — just composes atoms/molecules.</p>\n",
            "rawdescription": "\nOrganism: DigiD-style mock login. No real auth — just composes atoms/molecules.",
            "type": "component",
            "sourceCode": "import { Component, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormFieldComponent } from '@shared/ui/form-field/form-field.component';\nimport { TextInputComponent } from '@shared/ui/text-input/text-input.component';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\n\n/** Organism: DigiD-style mock login. No real auth — just composes atoms/molecules. */\n@Component({\n  selector: 'app-login-form',\n  imports: [FormsModule, FormFieldComponent, TextInputComponent, ButtonComponent],\n  template: `\n    <form (ngSubmit)=\"submitted.emit(bsn)\" class=\"form-horizontal\">\n      <div class=\"form-header\">\n        <div class=\"form-action\"><span class=\"meta\" i18n=\"@@form.verplichteVelden\">* verplichte velden</span></div>\n      </div>\n\n      <app-form-field i18n-label=\"@@login.bsnLabel\" label=\"BSN\" fieldId=\"bsn\" required i18n-description=\"@@login.bsnDescription\" description=\"9 cijfers (demo: vul iets in)\">\n        <app-text-input inputId=\"bsn\" [(ngModel)]=\"bsn\" name=\"bsn\" placeholder=\"123456789\" />\n      </app-form-field>\n\n      <app-form-field i18n-label=\"@@login.wachtwoordLabel\" label=\"Wachtwoord\" fieldId=\"pw\" required>\n        <app-text-input inputId=\"pw\" type=\"password\" [(ngModel)]=\"password\" name=\"pw\" />\n      </app-form-field>\n\n      <app-button type=\"submit\" variant=\"primary\" i18n=\"@@login.submit\">Inloggen met DigiD</app-button>\n    </form>\n  `,\n})\nexport class LoginFormComponent {\n  bsn = '';\n  password = '';\n  submitted = output<string>();\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "LoginPage",
            "id": "component-LoginPage-8360ce09834f323691c650e3c682e57f431504c3660e1269b832feb8fe109f04f5b9e120b6e4fdcf7a06006d42ead8797359133b3354f01545a5175df38a4f11",
            "file": "src/app/auth/ui/login.page.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-login-page",
            "styleUrls": [],
            "styles": [],
            "template": "<app-page-shell i18n-heading=\"@@login.heading\" heading=\"Inloggen\" width=\"narrow\"\n  i18n-intro=\"@@login.intro\" intro=\"Log in op uw persoonlijke BIG-register omgeving.\">\n  @if (error()) { <app-alert type=\"error\">{{ error() }}</app-alert> }\n  <app-login-form (submitted)=\"login($event)\" />\n</app-page-shell>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "error",
                    "defaultValue": "signal('')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "router",
                    "defaultValue": "inject(Router)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 21,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "store",
                    "defaultValue": "inject(SessionStore)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 20,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "login",
                    "args": [
                        {
                            "name": "bsn",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 24,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        134
                    ],
                    "jsdoctags": [
                        {
                            "name": "bsn",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "PageShellComponent",
                    "type": "component"
                },
                {
                    "name": "AlertComponent",
                    "type": "component"
                },
                {
                    "name": "LoginFormComponent",
                    "type": "component"
                }
            ],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, inject, signal } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { PageShellComponent } from '@shared/layout/page-shell/page-shell.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { LoginFormComponent } from '@auth/ui/login-form/login-form.component';\nimport { SessionStore } from '@auth/application/session.store';\n\n@Component({\n  selector: 'app-login-page',\n  imports: [PageShellComponent, AlertComponent, LoginFormComponent],\n  template: `\n    <app-page-shell i18n-heading=\"@@login.heading\" heading=\"Inloggen\" width=\"narrow\"\n      i18n-intro=\"@@login.intro\" intro=\"Log in op uw persoonlijke BIG-register omgeving.\">\n      @if (error()) { <app-alert type=\"error\">{{ error() }}</app-alert> }\n      <app-login-form (submitted)=\"login($event)\" />\n    </app-page-shell>\n  `,\n})\nexport class LoginPage {\n  private store = inject(SessionStore);\n  private router = inject(Router);\n  error = signal('');\n\n  async login(bsn: string) {\n    const r = await this.store.login(bsn);\n    if (r.ok) this.router.navigate(['/dashboard']);\n    else this.error.set(r.error);\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "PageShellComponent",
            "id": "component-PageShellComponent-80323dbaf01690d907006642b416ee2d47f0e6ade7d10a296f0869a4a0eeabe8161c7532e97788ec0339a4bf047346d77e7f654f462ede28b0f0da7a9e19521e",
            "file": "src/app/shared/layout/page-shell/page-shell.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-page-shell",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:block}\n    .body--narrow{max-inline-size:var(--app-form-narrow)}\n    .back{margin:0 0 var(--rhc-space-max-lg)}\n    .intro{margin-block:var(--rhc-space-max-md) var(--rhc-space-max-2xl);max-inline-size:42rem;color:var(--rhc-color-foreground-subtle)}\n  "
            ],
            "template": "<div [class.body--narrow]=\"width() === 'narrow'\">\n  @if (backLink()) {\n    <p class=\"back\"><app-link [to]=\"backLink()!\">← {{ backLabel() }}</app-link></p>\n  }\n  <app-heading [level]=\"1\">{{ heading() }}</app-heading>\n  @if (intro()) {\n    <p class=\"intro\">{{ intro() }}</p>\n  }\n  <ng-content />\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "backLabel",
                    "defaultValue": "$localize`:@@pageShell.backLabel:Terug naar overzicht`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 35,
                    "required": false
                },
                {
                    "name": "backLink",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 34,
                    "required": false
                },
                {
                    "name": "heading",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 32,
                    "required": true
                },
                {
                    "name": "intro",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 33,
                    "required": false
                },
                {
                    "name": "width",
                    "defaultValue": "'default'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "\"default\" | \"narrow\"",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 36,
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "HeadingComponent",
                    "type": "component"
                },
                {
                    "name": "LinkComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Template: standard page body — optional back-link, a heading, optional intro,\nand projected content. The breadcrumb lives in the site header (blue bar), so\nit&#39;s not repeated here. Rendered inside the persistent ShellComponent via the\nrouter outlet, so it owns only the content (not chrome).</p>\n",
            "rawdescription": "\nTemplate: standard page body — optional back-link, a heading, optional intro,\nand projected content. The breadcrumb lives in the site header (blue bar), so\nit's not repeated here. Rendered inside the persistent ShellComponent via the\nrouter outlet, so it owns only the content (not chrome).",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\nimport { HeadingComponent } from '@shared/ui/heading/heading.component';\nimport { LinkComponent } from '@shared/ui/link/link.component';\n\n/** Template: standard page body — optional back-link, a heading, optional intro,\n    and projected content. The breadcrumb lives in the site header (blue bar), so\n    it's not repeated here. Rendered inside the persistent ShellComponent via the\n    router outlet, so it owns only the content (not chrome). */\n@Component({\n  selector: 'app-page-shell',\n  imports: [HeadingComponent, LinkComponent],\n  styles: [`\n    :host{display:block}\n    .body--narrow{max-inline-size:var(--app-form-narrow)}\n    .back{margin:0 0 var(--rhc-space-max-lg)}\n    .intro{margin-block:var(--rhc-space-max-md) var(--rhc-space-max-2xl);max-inline-size:42rem;color:var(--rhc-color-foreground-subtle)}\n  `],\n  template: `\n    <div [class.body--narrow]=\"width() === 'narrow'\">\n      @if (backLink()) {\n        <p class=\"back\"><app-link [to]=\"backLink()!\">← {{ backLabel() }}</app-link></p>\n      }\n      <app-heading [level]=\"1\">{{ heading() }}</app-heading>\n      @if (intro()) {\n        <p class=\"intro\">{{ intro() }}</p>\n      }\n      <ng-content />\n    </div>\n  `,\n})\nexport class PageShellComponent {\n  heading = input.required<string>();\n  intro = input<string>();\n  backLink = input<string>();\n  backLabel = input($localize`:@@pageShell.backLabel:Terug naar overzicht`);\n  width = input<'default' | 'narrow'>('default');\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:block}\n    .body--narrow{max-inline-size:var(--app-form-narrow)}\n    .back{margin:0 0 var(--rhc-space-max-lg)}\n    .intro{margin-block:var(--rhc-space-max-md) var(--rhc-space-max-2xl);max-inline-size:42rem;color:var(--rhc-color-foreground-subtle)}\n  \n",
            "extends": []
        },
        {
            "name": "PassagePickerComponent",
            "id": "component-PassagePickerComponent-323a47d7d6ad5fab0857d75c4092f316e4228741db251c305985da7124e1a2fc58c61653e76604e7a58065dd4229997a6d7f0e2980564bd75bf4075c33a8dace",
            "file": "src/app/brief/ui/passage-picker/passage-picker.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-passage-picker",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:block;border:var(--rhc-border-width-sm) solid var(--rhc-color-border-default);border-radius:var(--rhc-border-radius-md);padding:var(--rhc-space-max-md)}\n    ul{list-style:none;margin:0 0 var(--rhc-space-max-md);padding:0;display:grid;gap:var(--rhc-space-max-sm)}\n    .scope{color:var(--rhc-color-foreground-subtle)}\n  "
            ],
            "template": "<ul>\n  @for (p of passages(); track p.passageId) {\n    <li>\n      <app-checkbox\n        [label]=\"p.label\"\n        [ngModel]=\"!!checked()[p.passageId]\"\n        (ngModelChange)=\"set(p.passageId, $event)\" />\n      <span class=\"scope\"> · {{ p.scope === 'beroep' ? beroepLabel() : globalLabel() }}</span>\n    </li>\n  }\n</ul>\n<app-button variant=\"secondary\" [disabled]=\"count() === 0\" (click)=\"add()\">{{ addLabel() }} ({{ count() }})</app-button>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "addLabel",
                    "defaultValue": "$localize`:@@brief.picker.add:Voeg toe`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 37,
                    "required": false
                },
                {
                    "name": "beroepLabel",
                    "defaultValue": "$localize`:@@brief.picker.beroep:beroepsspecifiek`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 39,
                    "required": false
                },
                {
                    "name": "globalLabel",
                    "defaultValue": "$localize`:@@brief.picker.global:algemeen`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 38,
                    "required": false
                },
                {
                    "name": "passages",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "readonly LibraryPassage[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 34,
                    "required": true
                }
            ],
            "outputsClass": [
                {
                    "name": "insert",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LibraryPassage[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 35,
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "checked",
                    "defaultValue": "signal<Record<string, boolean>>({})",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 41,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "count",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 42,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "add",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 48,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "set",
                    "args": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "on",
                            "type": "boolean",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 44,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "on",
                            "type": "boolean",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "FormsModule",
                    "type": "module"
                },
                {
                    "name": "CheckboxComponent",
                    "type": "component"
                },
                {
                    "name": "ButtonComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Molecule: multi-select list of the section&#39;s library passages. One &quot;Voeg toe&quot;\ninserts ALL checked passages at once (a single message upstream) — there is no\nsingle-insert path. Presentational: emits the chosen passages in list order.</p>\n",
            "rawdescription": "\nMolecule: multi-select list of the section's library passages. One \"Voeg toe\"\ninserts ALL checked passages at once (a single message upstream) — there is no\nsingle-insert path. Presentational: emits the chosen passages in list order.",
            "type": "component",
            "sourceCode": "import { Component, input, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CheckboxComponent } from '@shared/ui/checkbox/checkbox.component';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { LibraryPassage } from '@brief/domain/brief';\n\n/** Molecule: multi-select list of the section's library passages. One \"Voeg toe\"\n    inserts ALL checked passages at once (a single message upstream) — there is no\n    single-insert path. Presentational: emits the chosen passages in list order. */\n@Component({\n  selector: 'app-passage-picker',\n  imports: [FormsModule, CheckboxComponent, ButtonComponent],\n  styles: [`\n    :host{display:block;border:var(--rhc-border-width-sm) solid var(--rhc-color-border-default);border-radius:var(--rhc-border-radius-md);padding:var(--rhc-space-max-md)}\n    ul{list-style:none;margin:0 0 var(--rhc-space-max-md);padding:0;display:grid;gap:var(--rhc-space-max-sm)}\n    .scope{color:var(--rhc-color-foreground-subtle)}\n  `],\n  template: `\n    <ul>\n      @for (p of passages(); track p.passageId) {\n        <li>\n          <app-checkbox\n            [label]=\"p.label\"\n            [ngModel]=\"!!checked()[p.passageId]\"\n            (ngModelChange)=\"set(p.passageId, $event)\" />\n          <span class=\"scope\"> · {{ p.scope === 'beroep' ? beroepLabel() : globalLabel() }}</span>\n        </li>\n      }\n    </ul>\n    <app-button variant=\"secondary\" [disabled]=\"count() === 0\" (click)=\"add()\">{{ addLabel() }} ({{ count() }})</app-button>\n  `,\n})\nexport class PassagePickerComponent {\n  passages = input.required<readonly LibraryPassage[]>();\n  insert = output<LibraryPassage[]>();\n\n  addLabel = input($localize`:@@brief.picker.add:Voeg toe`);\n  globalLabel = input($localize`:@@brief.picker.global:algemeen`);\n  beroepLabel = input($localize`:@@brief.picker.beroep:beroepsspecifiek`);\n\n  protected checked = signal<Record<string, boolean>>({});\n  protected count = () => Object.values(this.checked()).filter(Boolean).length;\n\n  protected set(id: string, on: boolean) {\n    this.checked.update((c) => ({ ...c, [id]: on }));\n  }\n\n  protected add() {\n    const chosen = this.passages().filter((p) => this.checked()[p.passageId]);\n    if (chosen.length) {\n      this.insert.emit(chosen);\n      this.checked.set({});\n    }\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:block;border:var(--rhc-border-width-sm) solid var(--rhc-color-border-default);border-radius:var(--rhc-border-radius-md);padding:var(--rhc-space-max-md)}\n    ul{list-style:none;margin:0 0 var(--rhc-space-max-md);padding:0;display:grid;gap:var(--rhc-space-max-sm)}\n    .scope{color:var(--rhc-color-foreground-subtle)}\n  \n",
            "extends": []
        },
        {
            "name": "PlaceholderChipComponent",
            "id": "component-PlaceholderChipComponent-c1f41950d1976c2792f791218f66b3b887321341d3bd80da1014232aa86dbece8535d1c2d7c8c01da524342c9c67e625dc4be08373fe8274d4f595b57a43f991",
            "file": "src/app/shared/ui/placeholder-chip/placeholder-chip.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-placeholder-chip",
            "styleUrls": [],
            "styles": [
                "\n    .chip{\n      display:inline-flex;align-items:center;gap:0.2em;\n      border-radius:var(--rhc-border-radius-sm);\n      padding:0 0.35em;line-height:1.6;border:1px solid transparent;white-space:nowrap;\n    }\n    /* Braces use unicode escapes; a literal { in a CSS content string breaks the style parser. */\n    .chip::before{content:'\\7B';opacity:0.6;font-weight:700}\n    .chip::after{content:'\\7D';opacity:0.6;font-weight:700}\n    .chip--auto{background:var(--rhc-color-cool-grey-100);color:var(--rhc-color-foreground-default)}\n    .chip--manual{background:var(--rhc-color-geel-100);color:var(--rhc-color-foreground-default)}\n    .chip--warning{background:var(--rhc-color-geel-100);border-color:var(--rhc-color-border-default);color:var(--rhc-color-foreground-default)}\n    .chip--error{background:var(--rhc-color-rood-100);border-color:var(--rhc-color-border-default);color:var(--rhc-color-foreground-default)}\n  "
            ],
            "template": "<span class=\"chip\" [class]=\"'chip--' + variant()\" [attr.aria-label]=\"ariaLabel()\">{{ label() }}</span>",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "autoResolvable",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 29,
                    "required": false
                },
                {
                    "name": "autoText",
                    "defaultValue": "$localize`:@@placeholderChip.auto:wordt automatisch ingevuld`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 33,
                    "required": false
                },
                {
                    "name": "errorText",
                    "defaultValue": "$localize`:@@placeholderChip.error:fout`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 36,
                    "required": false
                },
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 28,
                    "required": true
                },
                {
                    "name": "manualText",
                    "defaultValue": "$localize`:@@placeholderChip.manual:handmatig in te vullen`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 34,
                    "required": false
                },
                {
                    "name": "state",
                    "defaultValue": "'ok'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "\"ok\" | \"warning\" | \"error\"",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 30,
                    "required": false
                },
                {
                    "name": "warningText",
                    "defaultValue": "$localize`:@@placeholderChip.warning:let op`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 35,
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "ariaLabel",
                    "defaultValue": "computed(() => {\n    const status = { auto: this.autoText(), manual: this.manualText(), warning: this.warningText(), error: this.errorText() }[this.variant()];\n    return $localize`:@@placeholderChip.aria:Veld ${this.label()}:label:, ${status}:status:`;\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 43,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "variant",
                    "defaultValue": "computed(() => {\n    const s = this.state();\n    return s !== 'ok' ? s : this.autoResolvable() ? 'auto' : 'manual';\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 38,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Atom: a highlighted, non-editable placeholder chip for READ-ONLY rendering\n(preview, diagnostics). Distinct styling for auto-resolvable vs manual fields and\nfor linter error/warning states. Domain-free and presentational — the caller\npasses label/state; a11y label announces the field name + its resolution status.\n(The editor renders its own inline chips inside contenteditable; this atom is for\neverywhere the letter is shown, not edited.)</p>\n",
            "rawdescription": "\nAtom: a highlighted, non-editable placeholder chip for READ-ONLY rendering\n(preview, diagnostics). Distinct styling for auto-resolvable vs manual fields and\nfor linter error/warning states. Domain-free and presentational — the caller\npasses label/state; a11y label announces the field name + its resolution status.\n(The editor renders its own inline chips inside contenteditable; this atom is for\neverywhere the letter is shown, not edited.)",
            "type": "component",
            "sourceCode": "import { Component, computed, input } from '@angular/core';\n\n/** Atom: a highlighted, non-editable placeholder chip for READ-ONLY rendering\n    (preview, diagnostics). Distinct styling for auto-resolvable vs manual fields and\n    for linter error/warning states. Domain-free and presentational — the caller\n    passes label/state; a11y label announces the field name + its resolution status.\n    (The editor renders its own inline chips inside contenteditable; this atom is for\n    everywhere the letter is shown, not edited.) */\n@Component({\n  selector: 'app-placeholder-chip',\n  styles: [`\n    .chip{\n      display:inline-flex;align-items:center;gap:0.2em;\n      border-radius:var(--rhc-border-radius-sm);\n      padding:0 0.35em;line-height:1.6;border:1px solid transparent;white-space:nowrap;\n    }\n    /* Braces use unicode escapes; a literal { in a CSS content string breaks the style parser. */\n    .chip::before{content:'\\\\7B';opacity:0.6;font-weight:700}\n    .chip::after{content:'\\\\7D';opacity:0.6;font-weight:700}\n    .chip--auto{background:var(--rhc-color-cool-grey-100);color:var(--rhc-color-foreground-default)}\n    .chip--manual{background:var(--rhc-color-geel-100);color:var(--rhc-color-foreground-default)}\n    .chip--warning{background:var(--rhc-color-geel-100);border-color:var(--rhc-color-border-default);color:var(--rhc-color-foreground-default)}\n    .chip--error{background:var(--rhc-color-rood-100);border-color:var(--rhc-color-border-default);color:var(--rhc-color-foreground-default)}\n  `],\n  template: `<span class=\"chip\" [class]=\"'chip--' + variant()\" [attr.aria-label]=\"ariaLabel()\">{{ label() }}</span>`,\n})\nexport class PlaceholderChipComponent {\n  label = input.required<string>();\n  autoResolvable = input(false);\n  state = input<'ok' | 'warning' | 'error'>('ok');\n\n  // Copy is localizable-by-default per the shared-UI convention (like <app-async>).\n  autoText = input($localize`:@@placeholderChip.auto:wordt automatisch ingevuld`);\n  manualText = input($localize`:@@placeholderChip.manual:handmatig in te vullen`);\n  warningText = input($localize`:@@placeholderChip.warning:let op`);\n  errorText = input($localize`:@@placeholderChip.error:fout`);\n\n  protected variant = computed(() => {\n    const s = this.state();\n    return s !== 'ok' ? s : this.autoResolvable() ? 'auto' : 'manual';\n  });\n\n  protected ariaLabel = computed(() => {\n    const status = { auto: this.autoText(), manual: this.manualText(), warning: this.warningText(), error: this.errorText() }[this.variant()];\n    return $localize`:@@placeholderChip.aria:Veld ${this.label()}:label:, ${status}:status:`;\n  });\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    .chip{\n      display:inline-flex;align-items:center;gap:0.2em;\n      border-radius:var(--rhc-border-radius-sm);\n      padding:0 0.35em;line-height:1.6;border:1px solid transparent;white-space:nowrap;\n    }\n    /* Braces use unicode escapes; a literal { in a CSS content string breaks the style parser. */\n    .chip::before{content:'\\7B';opacity:0.6;font-weight:700}\n    .chip::after{content:'\\7D';opacity:0.6;font-weight:700}\n    .chip--auto{background:var(--rhc-color-cool-grey-100);color:var(--rhc-color-foreground-default)}\n    .chip--manual{background:var(--rhc-color-geel-100);color:var(--rhc-color-foreground-default)}\n    .chip--warning{background:var(--rhc-color-geel-100);border-color:var(--rhc-color-border-default);color:var(--rhc-color-foreground-default)}\n    .chip--error{background:var(--rhc-color-rood-100);border-color:var(--rhc-color-border-default);color:var(--rhc-color-foreground-default)}\n  \n",
            "extends": []
        },
        {
            "name": "RadioGroupComponent",
            "id": "component-RadioGroupComponent-1dcd85f150fd82e56b3bc34cfc0a6b05687fdfdebf1ee0471bd5b01789b7783c430dc4c7c0685110aa2cf9a46c7b0e484faef78deaf3f79a13285942f89dd6dc",
            "file": "src/app/shared/ui/radio-group/radio-group.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [
                {
                    "name": ")"
                }
            ],
            "selector": "app-radio-group",
            "styleUrls": [],
            "styles": [],
            "template": "<div\n  role=\"radiogroup\"\n  [attr.aria-labelledby]=\"name() + '-label'\"\n  [attr.aria-invalid]=\"invalid() ? 'true' : null\"\n  [attr.aria-describedby]=\"invalid() ? name() + '-error' : null\">\n  @for (opt of options(); track opt.value) {\n    <div class=\"form-check styled\">\n      <input\n        class=\"form-check-input\"\n        [class.is-invalid]=\"invalid()\"\n        type=\"radio\"\n        [id]=\"name() + '-' + opt.value\"\n        [name]=\"name()\"\n        [value]=\"opt.value\"\n        [checked]=\"value === opt.value\"\n        [disabled]=\"disabled\"\n        (change)=\"select(opt.value)\"\n        (blur)=\"onTouched()\" />\n      <label class=\"form-check-label\" [for]=\"name() + '-' + opt.value\">{{ opt.label }}</label>\n    </div>\n  }\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "invalid",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 50,
                    "required": false
                },
                {
                    "name": "name",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 49,
                    "required": true
                },
                {
                    "name": "options",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RadioOption[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 48,
                    "required": true
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "disabled",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 53
                },
                {
                    "name": "onChange",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 54
                },
                {
                    "name": "onTouched",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 55
                },
                {
                    "name": "value",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 52
                }
            ],
            "methodsClass": [
                {
                    "name": "registerOnChange",
                    "args": [
                        {
                            "name": "fn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "v",
                                    "type": "string",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ]
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 62,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "fn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "v",
                                    "type": "string",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "registerOnTouched",
                    "args": [
                        {
                            "name": "fn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": []
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 63,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "fn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "select",
                    "args": [
                        {
                            "name": "v",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 57,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "v",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setDisabledState",
                    "args": [
                        {
                            "name": "d",
                            "type": "boolean",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 64,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "d",
                            "type": "boolean",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "writeValue",
                    "args": [
                        {
                            "name": "v",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 61,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "v",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Atom: a radio group. Thin wrapper over the CIBG Huisstijl <code>.form-check.styled</code>\nradio CSS, wired as a form control so it works with ngModel just like the\ntext-input atom.</p>\n",
            "rawdescription": "\nAtom: a radio group. Thin wrapper over the CIBG Huisstijl `.form-check.styled`\nradio CSS, wired as a form control so it works with ngModel just like the\ntext-input atom.",
            "type": "component",
            "sourceCode": "import { Component, forwardRef, input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport interface RadioOption {\n  value: string;\n  label: string;\n}\n\n/** The ubiquitous yes/no option pair. Language-agnostic now the labels are\n    localized, so it lives next to RadioOption and both wizards import it. */\nexport const JA_NEE: RadioOption[] = [\n  { value: 'ja', label: $localize`:@@common.ja:Ja` },\n  { value: 'nee', label: $localize`:@@common.nee:Nee` },\n];\n\n/** Atom: a radio group. Thin wrapper over the CIBG Huisstijl `.form-check.styled`\n    radio CSS, wired as a form control so it works with ngModel just like the\n    text-input atom. */\n@Component({\n  selector: 'app-radio-group',\n  template: `\n    <div\n      role=\"radiogroup\"\n      [attr.aria-labelledby]=\"name() + '-label'\"\n      [attr.aria-invalid]=\"invalid() ? 'true' : null\"\n      [attr.aria-describedby]=\"invalid() ? name() + '-error' : null\">\n      @for (opt of options(); track opt.value) {\n        <div class=\"form-check styled\">\n          <input\n            class=\"form-check-input\"\n            [class.is-invalid]=\"invalid()\"\n            type=\"radio\"\n            [id]=\"name() + '-' + opt.value\"\n            [name]=\"name()\"\n            [value]=\"opt.value\"\n            [checked]=\"value === opt.value\"\n            [disabled]=\"disabled\"\n            (change)=\"select(opt.value)\"\n            (blur)=\"onTouched()\" />\n          <label class=\"form-check-label\" [for]=\"name() + '-' + opt.value\">{{ opt.label }}</label>\n        </div>\n      }\n    </div>\n  `,\n  providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RadioGroupComponent), multi: true }],\n})\nexport class RadioGroupComponent implements ControlValueAccessor {\n  options = input.required<RadioOption[]>();\n  name = input.required<string>();\n  invalid = input(false);\n\n  value = '';\n  disabled = false;\n  onChange: (v: string) => void = () => {};\n  onTouched: () => void = () => {};\n\n  select(v: string) {\n    this.value = v;\n    this.onChange(v);\n  }\n  writeValue(v: string) { this.value = v ?? ''; }\n  registerOnChange(fn: (v: string) => void) { this.onChange = fn; }\n  registerOnTouched(fn: () => void) { this.onTouched = fn; }\n  setDisabledState(d: boolean) { this.disabled = d; }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": [],
            "implements": [
                "ControlValueAccessor"
            ]
        },
        {
            "name": "RegistratiePage",
            "id": "component-RegistratiePage-df4e1ca6ac40fac3e82ebc188b2e213e7320f222b9ced7084ed695ce313bc0a654bf1cdff8929f68b9f6e0f4786a31c0edb401bde1cf57be7bcaa9e078b5190f",
            "file": "src/app/registratie/ui/registratie.page.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-registratie-page",
            "styleUrls": [],
            "styles": [],
            "template": "<app-page-shell\n  i18n-heading=\"@@registratie.heading\"\n  heading=\"Inschrijven in het BIG-register\"\n  backLink=\"/dashboard\">\n  <app-alert type=\"info\" i18n=\"@@registratie.intro\">\n    In drie stappen schrijft u zich in: uw adres en correspondentievoorkeur, het\n    diploma waarmee u zich registreert, en een controle. Uw gegevens blijven bewaard\n    als u de pagina herlaadt.\n  </app-alert>\n  <div class=\"app-section\">\n    <app-registratie-wizard />\n  </div>\n</app-page-shell>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "PageShellComponent",
                    "type": "component"
                },
                {
                    "name": "AlertComponent",
                    "type": "component"
                },
                {
                    "name": "RegistratieWizardComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Page: register in the BIG-register. Built entirely from existing building\nblocks (page shell + alert + the registratie-wizard organism).</p>\n",
            "rawdescription": "\nPage: register in the BIG-register. Built entirely from existing building\nblocks (page shell + alert + the registratie-wizard organism).",
            "type": "component",
            "sourceCode": "import { Component } from '@angular/core';\nimport { PageShellComponent } from '@shared/layout/page-shell/page-shell.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { RegistratieWizardComponent } from '@registratie/ui/registratie-wizard/registratie-wizard.component';\n\n/** Page: register in the BIG-register. Built entirely from existing building\n    blocks (page shell + alert + the registratie-wizard organism). */\n@Component({\n  selector: 'app-registratie-page',\n  imports: [PageShellComponent, AlertComponent, RegistratieWizardComponent],\n  template: `\n    <app-page-shell\n      i18n-heading=\"@@registratie.heading\"\n      heading=\"Inschrijven in het BIG-register\"\n      backLink=\"/dashboard\">\n      <app-alert type=\"info\" i18n=\"@@registratie.intro\">\n        In drie stappen schrijft u zich in: uw adres en correspondentievoorkeur, het\n        diploma waarmee u zich registreert, en een controle. Uw gegevens blijven bewaard\n        als u de pagina herlaadt.\n      </app-alert>\n      <div class=\"app-section\">\n        <app-registratie-wizard />\n      </div>\n    </app-page-shell>\n  `,\n})\nexport class RegistratiePage {}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "RegistratieWizardComponent",
            "id": "component-RegistratieWizardComponent-dfda02e63388faa6d885924ae49f12ad44cc873e3c79993ef01ef844d046c5659282dd8fdc3dd014e77461b1642758eec277b168959185c7db46884796a5b56a",
            "file": "src/app/registratie/ui/registratie-wizard/registratie-wizard.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-registratie-wizard",
            "styleUrls": [],
            "styles": [],
            "template": "<app-wizard-shell\n  [steps]=\"stepLabels\"\n  [current]=\"cursor()\"\n  [stepTitle]=\"stepTitle()\"\n  i18n-processName=\"@@regWizard.processName\" processName=\"Inschrijven in het BIG-register\"\n  [status]=\"shellStatus()\"\n  [primaryLabel]=\"primaryLabel()\"\n  [canGoBack]=\"cursor() > 0\"\n  [errors]=\"errorList()\"\n  [errorMessage]=\"errorMessage()\"\n  i18n-submittingLabel=\"@@regWizard.submitting\" submittingLabel=\"Uw registratie wordt verwerkt…\"\n  (primary)=\"onPrimary()\"\n  (back)=\"dispatch({ tag: 'Back' })\"\n  (cancel)=\"restart()\"\n  (retry)=\"onRetry()\"\n  (goToStep)=\"dispatch({ tag: 'GaNaarStap', cursor: $event })\">\n\n  @switch (step()) {\n    @case ('adres') {\n          @if (adresStatus() === 'laden') {\n            <app-skeleton height=\"2.5rem\" [count]=\"4\" />\n          } @else {\n            @switch (adresStatus()) {\n              @case ('gevonden') {\n                <app-alert type=\"info\" i18n=\"@@regWizard.brpGevonden\">Vooraf ingevuld op basis van de BRP. Controleer en pas zo nodig aan.</app-alert>\n              }\n              @case ('geen') {\n                <app-alert type=\"warning\" i18n=\"@@regWizard.brpGeen\">We vonden geen adres in de BRP. Vul uw adres hieronder handmatig in.</app-alert>\n              }\n              @case ('fout') {\n                <app-alert type=\"warning\" i18n=\"@@regWizard.brpFout\">We konden de BRP nu niet bereiken. Vul uw adres hieronder handmatig in.</app-alert>\n              }\n            }\n            <app-address-fields\n              [value]=\"{ straat: draft().straat ?? '', postcode: draft().postcode ?? '', woonplaats: draft().woonplaats ?? '' }\"\n              [errors]=\"{ straat: err('straat'), postcode: err('postcode'), woonplaats: err('woonplaats') }\"\n              (fieldChange)=\"set($event.key, $event.value)\" />\n            <app-form-field i18n-label=\"@@regWizard.correspondentieLabel\" label=\"Hoe wilt u correspondentie ontvangen?\" fieldId=\"correspondentie\" required [error]=\"err('correspondentie')\">\n              <app-radio-group name=\"correspondentie\" [options]=\"kanalen\" [invalid]=\"!!err('correspondentie')\"\n                [ngModel]=\"draft().correspondentie ?? ''\" (ngModelChange)=\"setKanaal($event)\" />\n            </app-form-field>\n            @if (draft().correspondentie === 'email') {\n              <app-form-field i18n-label=\"@@regWizard.emailLabel\" label=\"E-mailadres\" fieldId=\"email\" required [error]=\"err('email')\">\n                <app-text-input inputId=\"email\" type=\"email\" [invalid]=\"!!err('email')\" [ngModel]=\"draft().email ?? ''\" (ngModelChange)=\"set('email', $event)\" name=\"email\" i18n-placeholder=\"@@regWizard.emailPlaceholder\" placeholder=\"naam@voorbeeld.nl\" />\n              </app-form-field>\n            }\n          }\n        }\n        @case ('beroep') {\n          <app-async [data]=\"lookupRd()\">\n            <ng-template appAsyncLoaded let-data>\n              <app-form-field i18n-label=\"@@regWizard.diplomaLabel\" label=\"Kies het diploma waarmee u zich wilt registreren\" fieldId=\"diploma\" required [error]=\"err('diploma')\">\n                <app-radio-group name=\"diploma\" [options]=\"diplomaOptions($any(data))\" [invalid]=\"!!err('diploma')\"\n                  [ngModel]=\"diplomaKeuze()\" (ngModelChange)=\"onDiplomaKeuze($any(data), $event)\" />\n              </app-form-field>\n\n              @if (handmatigActief()) {\n                <app-alert type=\"warning\" i18n=\"@@regWizard.handmatigWaarschuwing\">Een handmatig ingevoerd diploma kan niet automatisch worden geverifieerd. Kies uw beroep en beantwoord de aanvullende vragen; uw aanvraag wordt daarna handmatig beoordeeld.</app-alert>\n                <app-form-field i18n-label=\"@@regWizard.beroepLabel\" label=\"Voor welk beroep wilt u zich registreren?\" fieldId=\"hm-beroep\" [error]=\"err('diploma')\">\n                  <app-radio-group name=\"hm-beroep\" [options]=\"beroepOptions($any(data))\" [invalid]=\"!!err('diploma')\"\n                    [ngModel]=\"draft().beroep ?? ''\" (ngModelChange)=\"dispatch({ tag: 'DeclareerBeroep', beroep: $event })\" />\n                </app-form-field>\n              } @else if (draft().beroep) {\n                <dl class=\"mb-0 app-section\">\n                  <div app-data-row i18n-key=\"@@regWizard.beroepAfgeleid\" key=\"Beroep (afgeleid uit diploma)\" [value]=\"draft().beroep ?? ''\"></div>\n                </dl>\n              }\n\n              @for (q of actieveVragen($any(data)); track q.id) {\n                <app-form-field [label]=\"q.vraag\" [fieldId]=\"'vraag-' + q.id\" [error]=\"vraagErr(q.id)\">\n                  @if (q.type === 'ja-nee') {\n                    <app-radio-group [name]=\"'vraag-' + q.id\" [options]=\"jaNee\" [invalid]=\"!!vraagErr(q.id)\"\n                      [ngModel]=\"antwoord(q.id)\" (ngModelChange)=\"dispatch({ tag: 'SetAntwoord', vraagId: q.id, value: $event })\" [ngModelOptions]=\"{ standalone: true }\" />\n                  } @else {\n                    <app-text-input [inputId]=\"'vraag-' + q.id\" [invalid]=\"!!vraagErr(q.id)\" [ngModel]=\"antwoord(q.id)\"\n                      (ngModelChange)=\"dispatch({ tag: 'SetAntwoord', vraagId: q.id, value: $event })\" [ngModelOptions]=\"{ standalone: true }\" />\n                  }\n                </app-form-field>\n              }\n            </ng-template>\n            <ng-template appAsyncLoading>\n              <app-skeleton height=\"2.5rem\" [count]=\"3\" />\n            </ng-template>\n          </app-async>\n\n          <app-document-upload\n            class=\"app-section\"\n            [state]=\"upload()\"\n            [previewUrlFor]=\"previewUrlFor\"\n            (fileSelected)=\"uploadCtl.onFileSelected($event.categoryId, $event.files)\"\n            (removeUpload)=\"uploadCtl.onRemove($event)\"\n            (retryUpload)=\"uploadCtl.onRetry($event)\"\n            (deleteUpload)=\"uploadCtl.onDelete($event)\"\n            (channelChange)=\"uploadCtl.onChannelChange($event.categoryId, $event.channel)\" />\n          @if (err('documenten')) {\n            <app-alert type=\"warning\">{{ err('documenten') }}</app-alert>\n          }\n        }\n        @case ('controle') {\n          <app-alert type=\"info\" i18n=\"@@regWizard.controleer\">Controleer uw gegevens en dien de registratie in.</app-alert>\n          <app-review-section i18n-heading=\"@@regWizard.sectie.adres\" heading=\"Adres en correspondentie\"\n            i18n-editAriaLabel=\"@@regWizard.adresWijzigenAria\" editAriaLabel=\"Wijzigen adresgegevens\"\n            (edit)=\"dispatch({ tag: 'GaNaarStap', cursor: 0 })\">\n            <div app-data-row i18n-key=\"@@regWizard.summary.adres\" key=\"Adres\" [value]=\"adresSamenvatting()\"></div>\n            <div app-data-row i18n-key=\"@@regWizard.summary.herkomstAdres\" key=\"Herkomst adres\" [value]=\"adresHerkomstLabel()\"></div>\n            <div app-data-row i18n-key=\"@@regWizard.summary.correspondentie\" key=\"Correspondentie\" [value]=\"correspondentieLabel()\"></div>\n            @if (draft().correspondentie === 'email') {\n              <div app-data-row i18n-key=\"@@regWizard.summary.email\" key=\"E-mailadres\" [value]=\"draft().email ?? ''\"></div>\n            }\n          </app-review-section>\n          <app-review-section class=\"app-section\" i18n-heading=\"@@regWizard.sectie.beroep\" heading=\"Beroep en diploma\"\n            i18n-editAriaLabel=\"@@regWizard.diplomaWijzigenAria\" editAriaLabel=\"Wijzigen beroep en diploma\"\n            (edit)=\"dispatch({ tag: 'GaNaarStap', cursor: 1 })\">\n            <div app-data-row i18n-key=\"@@regWizard.summary.beroep\" key=\"Beroep\" [value]=\"draft().beroep ?? ''\"></div>\n            <div app-data-row i18n-key=\"@@regWizard.summary.herkomstDiploma\" key=\"Herkomst diploma\" [value]=\"diplomaHerkomstLabel()\"></div>\n            @for (item of samenvattingVragen(); track item.vraag) {\n              <div app-data-row [key]=\"item.vraag\" [value]=\"item.antwoord\"></div>\n            }\n          </app-review-section>\n    }\n  }\n\n  <div wizardSuccess>\n    <app-confirmation i18n-title=\"@@regWizard.success.title\" title=\"Uw registratie is ontvangen\">\n      <p class=\"app-section\" i18n=\"@@regWizard.success.referentie\">Uw referentienummer is {{ referentie() }}. Bewaar dit nummer voor uw administratie.</p>\n      <div class=\"app-section\">\n        <app-button variant=\"secondary\" (click)=\"restart()\" i18n=\"@@regWizard.nieuweRegistratie\">Nieuwe registratie starten</app-button>\n      </div>\n    </app-confirmation>\n  </div>\n</app-wizard-shell>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "seed",
                    "defaultValue": "initial",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RegistratieState",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Optional seed so Storybook / tests can mount any state directly.</p>\n",
                    "line": 206,
                    "rawdescription": "\nOptional seed so Storybook / tests can mount any state directly.",
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "actieveVragen",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The policy questions that apply to the current choice (server-decided).</p>\n",
                    "line": 317,
                    "rawdescription": "\nThe policy questions that apply to the current choice (server-decided).",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "adresHerkomstLabel",
                    "defaultValue": "computed(() => ({ brp: $localize`:@@regWizard.herkomst.adresBrp:Automatisch uit de BRP`, handmatig: $localize`:@@regWizard.herkomst.adresHandmatig:Handmatig ingevoerd` }[this.draft().adresHerkomst ?? 'handmatig']))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 280,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "adresSamenvatting",
                    "defaultValue": "computed(() => {\n    const d = this.draft();\n    return [d.straat, [d.postcode, d.woonplaats].filter(Boolean).join(' ')].filter(Boolean).join(', ');\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 275,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "adresStatus",
                    "defaultValue": "this.lookup.adresStatus",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>BRP lookup outcome (laden/gevonden/geen/fout) and the parsed DUO lookup, both\nserved by the application facade — the wizard renders, it does not fetch/parse.</p>\n",
                    "line": 286,
                    "rawdescription": "\nBRP lookup outcome (laden/gevonden/geen/fout) and the parsed DUO lookup, both\nserved by the application facade — the wizard renders, it does not fetch/parse.",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "antwoord",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 300,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "beroepOptions",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 314,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "correspondentieLabel",
                    "defaultValue": "computed(() => ({ email: $localize`:@@regWizard.corr.email:Per e-mail`, post: $localize`:@@regWizard.corr.post:Per post` }[this.draft().correspondentie ?? 'post']))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 281,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "cursor",
                    "defaultValue": "computed(() => this.invullen()?.cursor ?? 0)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 215,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "diplomaHerkomstLabel",
                    "defaultValue": "computed(() => ({ duo: $localize`:@@regWizard.herkomst.diplomaDuo:Geverifieerd via DUO`, handmatig: $localize`:@@regWizard.herkomst.diplomaHandmatig:Handmatig ingevoerd (wordt beoordeeld)` }[this.draft().diplomaHerkomst ?? 'handmatig']))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 282,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "diplomaKeuze",
                    "defaultValue": "computed(() => (this.handmatigActief() ? HANDMATIG : this.draft().diplomaId ?? ''))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The radio selection: a diploma id, or the&quot;not listed&quot; sentinel in manual mode.</p>\n",
                    "line": 307,
                    "rawdescription": "\nThe radio selection: a diploma id, or the\"not listed\" sentinel in manual mode.",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "diplomaOptions",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 309,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "dispatch",
                    "defaultValue": "this.store.dispatch",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 212,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "draft",
                    "defaultValue": "computed<Draft>(() => this.invullen()?.draft ?? { antwoorden: {} })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 216,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "draftSync",
                    "defaultValue": "createDraftSync({\n    type: 'registratie',\n    snapshot: () => {\n      const s = this.state();\n      if (s.tag !== 'Invullen' || !hasProgress(s)) return null;\n      const documentIds = deliveryRefs(s.upload).filter((r) => r.channel === 'digital' && r.documentId).map((r) => r.documentId!);\n      return { draft: s, stepIndex: s.cursor, stepCount: STEPS.length, documentIds };\n    },\n    onResume: (draft) => this.dispatch({ tag: 'Seed', state: draft as RegistratieState }),\n    enabled: () => this.seed() === initial,\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 232,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "duoData",
                    "defaultValue": "computed<DuoLookupDto | null>(() => {\n    const rd = this.lookupRd();\n    return rd.tag === 'Success' ? rd.value : null;\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Parsed lookup as a plain value (or null) — used outside the beroep step (the\ncontrole summary) where the <app-async> template variable isn&#39;t in scope.</p>\n",
                    "line": 291,
                    "rawdescription": "\nParsed lookup as a plain value (or null) — used outside the beroep step (the\ncontrole summary) where the <app-async> template variable isn't in scope.",
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "err",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 298,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "errorList",
                    "defaultValue": "computed<WizardError[]>(() => {\n    const e = this.invullen()?.errors ?? {};\n    const out: WizardError[] = [];\n    for (const [k, v] of Object.entries(e)) {\n      if (k !== 'antwoorden' && typeof v === 'string' && v) out.push({ id: k, message: v });\n    }\n    for (const [qid, msg] of Object.entries(e.antwoorden ?? {})) {\n      if (msg) out.push({ id: 'vraag-' + qid, message: msg });\n    }\n    return out;\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Current step&#39;s errors (incl. per-question), flattened for the error summary.</p>\n",
                    "line": 264,
                    "rawdescription": "\nCurrent step's errors (incl. per-question), flattened for the error summary.",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "errorMessage",
                    "defaultValue": "computed(() => $localize`:@@regWizard.indienenMislukt:Het indienen is niet gelukt:` + ` ${this.failedError()}`)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 254,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "failedError",
                    "defaultValue": "computed(() => whenTag(this.state(), 'Mislukt')?.error ?? '')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 246,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "handmatigActief",
                    "defaultValue": "computed(() => this.draft().diplomaHerkomst === 'handmatig')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>True while the user is entering a diploma manually (not in the DUO list).</p>\n",
                    "line": 305,
                    "rawdescription": "\nTrue while the user is entering a diploma manually (not in the DUO list).",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "invullen",
                    "defaultValue": "computed(() => whenTag(this.state(), 'Invullen'))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 214,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "jaNee",
                    "defaultValue": "JA_NEE",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 296,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "kanalen",
                    "defaultValue": "KANALEN",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 208,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "lookup",
                    "defaultValue": "inject(RegistratieLookupStore)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 196,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "lookupRd",
                    "defaultValue": "this.lookup.duoLookup",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 287,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "previewUrlFor",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Preview/download link for a completed upload; the dev-simulation <code>demo-*</code> ids\nhave no stored bytes, so they get no link.</p>\n",
                    "line": 202,
                    "rawdescription": "\nPreview/download link for a completed upload; the dev-simulation `demo-*` ids\nhave no stored bytes, so they get no link.",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "primaryLabel",
                    "defaultValue": "computed(() => {\n    if (this.step() === 'controle') return $localize`:@@regWizard.indienen:Registratie indienen`;\n    const next = this.cursor() + 1;\n    return naarStapLabel(next + 1, this.stepLabels[next]);\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 249,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "referentie",
                    "defaultValue": "computed(() => whenTag(this.state(), 'Ingediend')?.referentie ?? '')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 245,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "samenvattingVragen",
                    "defaultValue": "computed(() => {\n    const data = this.duoData();\n    const d = this.draft();\n    if (!data) return [] as { vraag: string; antwoord: string }[];\n    const alle = [...data.diplomas.flatMap((x) => x.policyQuestions), ...data.handmatig.policyQuestions];\n    return (d.vraagIds ?? []).map((id) => ({ vraag: alle.find((q) => q.id === id)?.vraag ?? id, antwoord: d.antwoorden[id] ?? '' }));\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Answered policy questions for the controle summary (question text + answer).</p>\n",
                    "line": 323,
                    "rawdescription": "\nAnswered policy questions for the controle summary (question text + answer).",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "set",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 301,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "setKanaal",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 302,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "shellStatus",
                    "defaultValue": "computed<WizardStatus>(() => {\n    switch (this.state().tag) {\n      case 'Invullen': return 'editing';\n      case 'Indienen': return 'submitting';\n      case 'Ingediend': return 'submitted';\n      case 'Mislukt': return 'failed';\n    }\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 255,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "state",
                    "defaultValue": "this.store.model",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 211,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "step",
                    "defaultValue": "computed<StepId>(() => STEPS[Math.min(this.cursor(), STEPS.length - 1)])",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 243,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "stepLabels",
                    "defaultValue": "[$localize`:@@regWizard.step.adres:Adres`, $localize`:@@regWizard.step.beroep:Beroep`, $localize`:@@regWizard.step.controle:Controle`]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 209,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "stepTitle",
                    "defaultValue": "computed(() => this.stepTitles[Math.min(this.cursor(), this.stepTitles.length - 1)])",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 244,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "stepTitles",
                    "defaultValue": "[$localize`:@@regWizard.title.adres:Adres en correspondentievoorkeur`, $localize`:@@regWizard.title.beroep:Beroep op basis van uw diploma`, $localize`:@@regWizard.title.controle:Controleren en indienen`]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 210,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "store",
                    "defaultValue": "createStore<RegistratieState, RegistratieMsg>(initial, reduce)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 198,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "upload",
                    "defaultValue": "computed<UploadState>(() => this.invullen()?.upload ?? initialUpload)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 217,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "uploadAdapter",
                    "defaultValue": "inject(UploadAdapter)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 197,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "uploadCtl",
                    "defaultValue": "createUploadController({\n    wizardId: 'registratie',\n    getUpload: () => this.upload(),\n    dispatch: (msg) => this.dispatch({ tag: 'Upload', msg }),\n    // Required documents depend on answers (server decides): a diploma upload only for a\n    // manual diploma; a Dutch-taalvaardigheid upload only once the applicant confirms\n    // (\"ja\") the B2 language requirement.\n    getCategoryParams: () => ({\n      diplomaHerkomst: this.draft().diplomaHerkomst,\n      taalvaardigheid: this.draft().antwoorden[NL_TAALVAARDIGHEID_VRAAG],\n    }),\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 218,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "vraagErr",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 299,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "onDiplomaKeuze",
                    "args": [
                        {
                            "name": "data",
                            "type": "DuoLookupDto",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 331,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "data",
                            "type": "DuoLookupDto",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "onPrimary",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 362,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onRetry",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 369,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "restart",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 376,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nReset the wizard to a fresh start. Reload the BRP lookup so the address\nre-prefills, keeping the form and the\"vooraf ingevuld\" note consistent.",
                    "description": "<p>Reset the wizard to a fresh start. Reload the BRP lookup so the address\nre-prefills, keeping the form and the&quot;vooraf ingevuld&quot; note consistent.</p>\n"
                },
                {
                    "name": "runIfIndienen",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 384,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nThe effect: when we enter Indienen, submit through the aanvraag lifecycle\n(duo → auto-approve, handmatig → manual), then dispatch the outcome.",
                    "description": "<p>The effect: when we enter Indienen, submit through the aanvraag lifecycle\n(duo → auto-approve, handmatig → manual), then dispatch the outcome.</p>\n",
                    "modifierKind": [
                        123,
                        134
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "FormsModule",
                    "type": "module"
                },
                {
                    "name": "FormFieldComponent",
                    "type": "component"
                },
                {
                    "name": "TextInputComponent",
                    "type": "component"
                },
                {
                    "name": "RadioGroupComponent",
                    "type": "component"
                },
                {
                    "name": "ButtonComponent",
                    "type": "component"
                },
                {
                    "name": "AlertComponent",
                    "type": "component"
                },
                {
                    "name": "SkeletonComponent",
                    "type": "component"
                },
                {
                    "name": "DataRowComponent",
                    "type": "component"
                },
                {
                    "name": "ReviewSectionComponent",
                    "type": "component"
                },
                {
                    "name": "ConfirmationComponent",
                    "type": "component"
                },
                {
                    "name": "WizardShellComponent",
                    "type": "component"
                },
                {
                    "name": "AddressFieldsComponent",
                    "type": "component"
                },
                {
                    "name": "DocumentUploadComponent",
                    "type": "component"
                },
                {
                    "name": "ASYNC"
                }
            ],
            "description": "<p>Organism: the BIG-registration wizard. All state lives in one signal driven by\nthe pure <code>reduce</code> (registratie-wizard.machine.ts). The BRP address prefills the\ndraft via an effect; the DUO diploma list renders through <app-async>; choosing\na diploma reveals its server-derived beroep. The draft is persisted to the\nbackend as a Concept aanvraag (createDraftSync) so a reload — or a&quot;Verder gaan&quot;\nfrom the dashboard via <code>?aanvraag=&lt;id&gt;</code> — resumes progress. Built from existing\natoms/molecules.</p>\n",
            "rawdescription": "\nOrganism: the BIG-registration wizard. All state lives in one signal driven by\nthe pure `reduce` (registratie-wizard.machine.ts). The BRP address prefills the\ndraft via an effect; the DUO diploma list renders through <app-async>; choosing\na diploma reveals its server-derived beroep. The draft is persisted to the\nbackend as a Concept aanvraag (createDraftSync) so a reload — or a\"Verder gaan\"\nfrom the dashboard via `?aanvraag=<id>` — resumes progress. Built from existing\natoms/molecules.",
            "type": "component",
            "sourceCode": "import { Component, computed, effect, inject, input, untracked } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormFieldComponent } from '@shared/ui/form-field/form-field.component';\nimport { TextInputComponent } from '@shared/ui/text-input/text-input.component';\nimport { RadioGroupComponent, JA_NEE } from '@shared/ui/radio-group/radio-group.component';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { SkeletonComponent } from '@shared/ui/skeleton/skeleton.component';\nimport { DataRowComponent } from '@shared/ui/data-row/data-row.component';\nimport { ReviewSectionComponent } from '@shared/ui/review-section/review-section.component';\nimport { ConfirmationComponent } from '@shared/ui/confirmation/confirmation.component';\nimport { WizardShellComponent, WizardError, WizardStatus, naarStapLabel } from '@shared/layout/wizard-shell/wizard-shell.component';\nimport { ASYNC } from '@shared/ui/async/async.component';\nimport { AddressFieldsComponent } from '@registratie/ui/address-fields/address-fields.component';\nimport { createStore } from '@shared/application/store';\nimport { whenTag } from '@shared/kernel/fp';\nimport { RemoteData } from '@shared/application/remote-data';\nimport { RegistratieLookupStore } from '@registratie/application/registratie-lookup.store';\nimport { DuoLookupDto, PolicyQuestionDto } from '@registratie/contracts/duo-diplomas.dto';\nimport {\n  RegistratieState,\n  RegistratieMsg,\n  Draft,\n  DraftField,\n  Correspondentie,\n  StepId,\n  initial,\n  reduce,\n  hasProgress,\n  STEPS,\n} from '@registratie/domain/registratie-wizard.machine';\nimport { createDraftSync } from '@registratie/application/draft-sync';\nimport { DocumentUploadComponent } from '@shared/ui/upload/document-upload/document-upload.component';\nimport { createUploadController } from '@shared/upload/upload-controller';\nimport { UploadAdapter } from '@shared/upload/upload.adapter';\nimport { UploadState, initialUpload, deliveryRefs } from '@shared/upload/upload.machine';\n\nconst KANALEN = [\n  { value: 'email', label: $localize`:@@registratie.kanaalEmail:E-mail` },\n  { value: 'post', label: $localize`:@@registratie.kanaalPost:Post` },\n];\nconst HANDMATIG = '__handmatig__'; // sentinel option:\"my diploma isn't listed\"\n/** The server-owned geldigheidsvraag whose\"ja\" answer requires a Dutch-taalvaardigheid\n    upload (proof of the confirmed B2 level). Stable id shared with the backend. */\nconst NL_TAALVAARDIGHEID_VRAAG = 'nl-taalvaardigheid';\n\n/** Organism: the BIG-registration wizard. All state lives in one signal driven by\n    the pure `reduce` (registratie-wizard.machine.ts). The BRP address prefills the\n    draft via an effect; the DUO diploma list renders through <app-async>; choosing\n    a diploma reveals its server-derived beroep. The draft is persisted to the\n    backend as a Concept aanvraag (createDraftSync) so a reload — or a\"Verder gaan\"\n    from the dashboard via `?aanvraag=<id>` — resumes progress. Built from existing\n    atoms/molecules. */\n@Component({\n  selector: 'app-registratie-wizard',\n  imports: [\n    FormsModule, FormFieldComponent, TextInputComponent, RadioGroupComponent, ButtonComponent,\n    AlertComponent, SkeletonComponent, DataRowComponent, ReviewSectionComponent, ConfirmationComponent, WizardShellComponent,\n    AddressFieldsComponent, DocumentUploadComponent, ...ASYNC,\n  ],\n  template: `\n    <app-wizard-shell\n      [steps]=\"stepLabels\"\n      [current]=\"cursor()\"\n      [stepTitle]=\"stepTitle()\"\n      i18n-processName=\"@@regWizard.processName\" processName=\"Inschrijven in het BIG-register\"\n      [status]=\"shellStatus()\"\n      [primaryLabel]=\"primaryLabel()\"\n      [canGoBack]=\"cursor() > 0\"\n      [errors]=\"errorList()\"\n      [errorMessage]=\"errorMessage()\"\n      i18n-submittingLabel=\"@@regWizard.submitting\" submittingLabel=\"Uw registratie wordt verwerkt…\"\n      (primary)=\"onPrimary()\"\n      (back)=\"dispatch({ tag: 'Back' })\"\n      (cancel)=\"restart()\"\n      (retry)=\"onRetry()\"\n      (goToStep)=\"dispatch({ tag: 'GaNaarStap', cursor: $event })\">\n\n      @switch (step()) {\n        @case ('adres') {\n              @if (adresStatus() === 'laden') {\n                <app-skeleton height=\"2.5rem\" [count]=\"4\" />\n              } @else {\n                @switch (adresStatus()) {\n                  @case ('gevonden') {\n                    <app-alert type=\"info\" i18n=\"@@regWizard.brpGevonden\">Vooraf ingevuld op basis van de BRP. Controleer en pas zo nodig aan.</app-alert>\n                  }\n                  @case ('geen') {\n                    <app-alert type=\"warning\" i18n=\"@@regWizard.brpGeen\">We vonden geen adres in de BRP. Vul uw adres hieronder handmatig in.</app-alert>\n                  }\n                  @case ('fout') {\n                    <app-alert type=\"warning\" i18n=\"@@regWizard.brpFout\">We konden de BRP nu niet bereiken. Vul uw adres hieronder handmatig in.</app-alert>\n                  }\n                }\n                <app-address-fields\n                  [value]=\"{ straat: draft().straat ?? '', postcode: draft().postcode ?? '', woonplaats: draft().woonplaats ?? '' }\"\n                  [errors]=\"{ straat: err('straat'), postcode: err('postcode'), woonplaats: err('woonplaats') }\"\n                  (fieldChange)=\"set($event.key, $event.value)\" />\n                <app-form-field i18n-label=\"@@regWizard.correspondentieLabel\" label=\"Hoe wilt u correspondentie ontvangen?\" fieldId=\"correspondentie\" required [error]=\"err('correspondentie')\">\n                  <app-radio-group name=\"correspondentie\" [options]=\"kanalen\" [invalid]=\"!!err('correspondentie')\"\n                    [ngModel]=\"draft().correspondentie ?? ''\" (ngModelChange)=\"setKanaal($event)\" />\n                </app-form-field>\n                @if (draft().correspondentie === 'email') {\n                  <app-form-field i18n-label=\"@@regWizard.emailLabel\" label=\"E-mailadres\" fieldId=\"email\" required [error]=\"err('email')\">\n                    <app-text-input inputId=\"email\" type=\"email\" [invalid]=\"!!err('email')\" [ngModel]=\"draft().email ?? ''\" (ngModelChange)=\"set('email', $event)\" name=\"email\" i18n-placeholder=\"@@regWizard.emailPlaceholder\" placeholder=\"naam@voorbeeld.nl\" />\n                  </app-form-field>\n                }\n              }\n            }\n            @case ('beroep') {\n              <app-async [data]=\"lookupRd()\">\n                <ng-template appAsyncLoaded let-data>\n                  <app-form-field i18n-label=\"@@regWizard.diplomaLabel\" label=\"Kies het diploma waarmee u zich wilt registreren\" fieldId=\"diploma\" required [error]=\"err('diploma')\">\n                    <app-radio-group name=\"diploma\" [options]=\"diplomaOptions($any(data))\" [invalid]=\"!!err('diploma')\"\n                      [ngModel]=\"diplomaKeuze()\" (ngModelChange)=\"onDiplomaKeuze($any(data), $event)\" />\n                  </app-form-field>\n\n                  @if (handmatigActief()) {\n                    <app-alert type=\"warning\" i18n=\"@@regWizard.handmatigWaarschuwing\">Een handmatig ingevoerd diploma kan niet automatisch worden geverifieerd. Kies uw beroep en beantwoord de aanvullende vragen; uw aanvraag wordt daarna handmatig beoordeeld.</app-alert>\n                    <app-form-field i18n-label=\"@@regWizard.beroepLabel\" label=\"Voor welk beroep wilt u zich registreren?\" fieldId=\"hm-beroep\" [error]=\"err('diploma')\">\n                      <app-radio-group name=\"hm-beroep\" [options]=\"beroepOptions($any(data))\" [invalid]=\"!!err('diploma')\"\n                        [ngModel]=\"draft().beroep ?? ''\" (ngModelChange)=\"dispatch({ tag: 'DeclareerBeroep', beroep: $event })\" />\n                    </app-form-field>\n                  } @else if (draft().beroep) {\n                    <dl class=\"mb-0 app-section\">\n                      <div app-data-row i18n-key=\"@@regWizard.beroepAfgeleid\" key=\"Beroep (afgeleid uit diploma)\" [value]=\"draft().beroep ?? ''\"></div>\n                    </dl>\n                  }\n\n                  @for (q of actieveVragen($any(data)); track q.id) {\n                    <app-form-field [label]=\"q.vraag\" [fieldId]=\"'vraag-' + q.id\" [error]=\"vraagErr(q.id)\">\n                      @if (q.type === 'ja-nee') {\n                        <app-radio-group [name]=\"'vraag-' + q.id\" [options]=\"jaNee\" [invalid]=\"!!vraagErr(q.id)\"\n                          [ngModel]=\"antwoord(q.id)\" (ngModelChange)=\"dispatch({ tag: 'SetAntwoord', vraagId: q.id, value: $event })\" [ngModelOptions]=\"{ standalone: true }\" />\n                      } @else {\n                        <app-text-input [inputId]=\"'vraag-' + q.id\" [invalid]=\"!!vraagErr(q.id)\" [ngModel]=\"antwoord(q.id)\"\n                          (ngModelChange)=\"dispatch({ tag: 'SetAntwoord', vraagId: q.id, value: $event })\" [ngModelOptions]=\"{ standalone: true }\" />\n                      }\n                    </app-form-field>\n                  }\n                </ng-template>\n                <ng-template appAsyncLoading>\n                  <app-skeleton height=\"2.5rem\" [count]=\"3\" />\n                </ng-template>\n              </app-async>\n\n              <app-document-upload\n                class=\"app-section\"\n                [state]=\"upload()\"\n                [previewUrlFor]=\"previewUrlFor\"\n                (fileSelected)=\"uploadCtl.onFileSelected($event.categoryId, $event.files)\"\n                (removeUpload)=\"uploadCtl.onRemove($event)\"\n                (retryUpload)=\"uploadCtl.onRetry($event)\"\n                (deleteUpload)=\"uploadCtl.onDelete($event)\"\n                (channelChange)=\"uploadCtl.onChannelChange($event.categoryId, $event.channel)\" />\n              @if (err('documenten')) {\n                <app-alert type=\"warning\">{{ err('documenten') }}</app-alert>\n              }\n            }\n            @case ('controle') {\n              <app-alert type=\"info\" i18n=\"@@regWizard.controleer\">Controleer uw gegevens en dien de registratie in.</app-alert>\n              <app-review-section i18n-heading=\"@@regWizard.sectie.adres\" heading=\"Adres en correspondentie\"\n                i18n-editAriaLabel=\"@@regWizard.adresWijzigenAria\" editAriaLabel=\"Wijzigen adresgegevens\"\n                (edit)=\"dispatch({ tag: 'GaNaarStap', cursor: 0 })\">\n                <div app-data-row i18n-key=\"@@regWizard.summary.adres\" key=\"Adres\" [value]=\"adresSamenvatting()\"></div>\n                <div app-data-row i18n-key=\"@@regWizard.summary.herkomstAdres\" key=\"Herkomst adres\" [value]=\"adresHerkomstLabel()\"></div>\n                <div app-data-row i18n-key=\"@@regWizard.summary.correspondentie\" key=\"Correspondentie\" [value]=\"correspondentieLabel()\"></div>\n                @if (draft().correspondentie === 'email') {\n                  <div app-data-row i18n-key=\"@@regWizard.summary.email\" key=\"E-mailadres\" [value]=\"draft().email ?? ''\"></div>\n                }\n              </app-review-section>\n              <app-review-section class=\"app-section\" i18n-heading=\"@@regWizard.sectie.beroep\" heading=\"Beroep en diploma\"\n                i18n-editAriaLabel=\"@@regWizard.diplomaWijzigenAria\" editAriaLabel=\"Wijzigen beroep en diploma\"\n                (edit)=\"dispatch({ tag: 'GaNaarStap', cursor: 1 })\">\n                <div app-data-row i18n-key=\"@@regWizard.summary.beroep\" key=\"Beroep\" [value]=\"draft().beroep ?? ''\"></div>\n                <div app-data-row i18n-key=\"@@regWizard.summary.herkomstDiploma\" key=\"Herkomst diploma\" [value]=\"diplomaHerkomstLabel()\"></div>\n                @for (item of samenvattingVragen(); track item.vraag) {\n                  <div app-data-row [key]=\"item.vraag\" [value]=\"item.antwoord\"></div>\n                }\n              </app-review-section>\n        }\n      }\n\n      <div wizardSuccess>\n        <app-confirmation i18n-title=\"@@regWizard.success.title\" title=\"Uw registratie is ontvangen\">\n          <p class=\"app-section\" i18n=\"@@regWizard.success.referentie\">Uw referentienummer is {{ referentie() }}. Bewaar dit nummer voor uw administratie.</p>\n          <div class=\"app-section\">\n            <app-button variant=\"secondary\" (click)=\"restart()\" i18n=\"@@regWizard.nieuweRegistratie\">Nieuwe registratie starten</app-button>\n          </div>\n        </app-confirmation>\n      </div>\n    </app-wizard-shell>\n  `,\n})\nexport class RegistratieWizardComponent {\n  private lookup = inject(RegistratieLookupStore);\n  private uploadAdapter = inject(UploadAdapter);\n  private store = createStore<RegistratieState, RegistratieMsg>(initial, reduce);\n\n  /** Preview/download link for a completed upload; the dev-simulation `demo-*` ids\n      have no stored bytes, so they get no link. */\n  protected previewUrlFor = (documentId: string): string | undefined =>\n    documentId.startsWith('demo-') ? undefined : this.uploadAdapter.contentUrl(documentId);\n\n  /** Optional seed so Storybook / tests can mount any state directly. */\n  seed = input<RegistratieState>(initial);\n\n  readonly kanalen = KANALEN;\n  readonly stepLabels = [$localize`:@@regWizard.step.adres:Adres`, $localize`:@@regWizard.step.beroep:Beroep`, $localize`:@@regWizard.step.controle:Controle`]; // short labels for the stepper\n  private stepTitles = [$localize`:@@regWizard.title.adres:Adres en correspondentievoorkeur`, $localize`:@@regWizard.title.beroep:Beroep op basis van uw diploma`, $localize`:@@regWizard.title.controle:Controleren en indienen`];\n  readonly state = this.store.model;\n  readonly dispatch = this.store.dispatch;\n\n  private invullen = computed(() => whenTag(this.state(), 'Invullen'));\n  protected cursor = computed(() => this.invullen()?.cursor ?? 0);\n  protected draft = computed<Draft>(() => this.invullen()?.draft ?? { antwoorden: {} });\n  protected upload = computed<UploadState>(() => this.invullen()?.upload ?? initialUpload);\n  protected uploadCtl = createUploadController({\n    wizardId: 'registratie',\n    getUpload: () => this.upload(),\n    dispatch: (msg) => this.dispatch({ tag: 'Upload', msg }),\n    // Required documents depend on answers (server decides): a diploma upload only for a\n    // manual diploma; a Dutch-taalvaardigheid upload only once the applicant confirms\n    // (\"ja\") the B2 language requirement.\n    getCategoryParams: () => ({\n      diplomaHerkomst: this.draft().diplomaHerkomst,\n      taalvaardigheid: this.draft().antwoorden[NL_TAALVAARDIGHEID_VRAAG],\n    }),\n  });\n  // Backend draft-sync (replaces sessionStorage): create a Concept once the user has\n  // made progress, then debounced-sync the whole machine snapshot; resume by `?aanvraag`.\n  private draftSync = createDraftSync({\n    type: 'registratie',\n    snapshot: () => {\n      const s = this.state();\n      if (s.tag !== 'Invullen' || !hasProgress(s)) return null;\n      const documentIds = deliveryRefs(s.upload).filter((r) => r.channel === 'digital' && r.documentId).map((r) => r.documentId!);\n      return { draft: s, stepIndex: s.cursor, stepCount: STEPS.length, documentIds };\n    },\n    onResume: (draft) => this.dispatch({ tag: 'Seed', state: draft as RegistratieState }),\n    enabled: () => this.seed() === initial,\n  });\n  protected step = computed<StepId>(() => STEPS[Math.min(this.cursor(), STEPS.length - 1)]);\n  protected stepTitle = computed(() => this.stepTitles[Math.min(this.cursor(), this.stepTitles.length - 1)]);\n  protected referentie = computed(() => whenTag(this.state(), 'Ingediend')?.referentie ?? '');\n  protected failedError = computed(() => whenTag(this.state(), 'Mislukt')?.error ?? '');\n\n  // --- Presentational wiring for the shared wizard shell ---------------------\n  protected primaryLabel = computed(() => {\n    if (this.step() === 'controle') return $localize`:@@regWizard.indienen:Registratie indienen`;\n    const next = this.cursor() + 1;\n    return naarStapLabel(next + 1, this.stepLabels[next]);\n  });\n  protected errorMessage = computed(() => $localize`:@@regWizard.indienenMislukt:Het indienen is niet gelukt:` + ` ${this.failedError()}`);\n  protected shellStatus = computed<WizardStatus>(() => {\n    switch (this.state().tag) {\n      case 'Invullen': return 'editing';\n      case 'Indienen': return 'submitting';\n      case 'Ingediend': return 'submitted';\n      case 'Mislukt': return 'failed';\n    }\n  });\n  /** Current step's errors (incl. per-question), flattened for the error summary. */\n  protected errorList = computed<WizardError[]>(() => {\n    const e = this.invullen()?.errors ?? {};\n    const out: WizardError[] = [];\n    for (const [k, v] of Object.entries(e)) {\n      if (k !== 'antwoorden' && typeof v === 'string' && v) out.push({ id: k, message: v });\n    }\n    for (const [qid, msg] of Object.entries(e.antwoorden ?? {})) {\n      if (msg) out.push({ id: 'vraag-' + qid, message: msg });\n    }\n    return out;\n  });\n  protected adresSamenvatting = computed(() => {\n    const d = this.draft();\n    return [d.straat, [d.postcode, d.woonplaats].filter(Boolean).join(' ')].filter(Boolean).join(', ');\n  });\n  // Readable labels for the controle summary (instead of raw enum values).\n  protected adresHerkomstLabel = computed(() => ({ brp: $localize`:@@regWizard.herkomst.adresBrp:Automatisch uit de BRP`, handmatig: $localize`:@@regWizard.herkomst.adresHandmatig:Handmatig ingevoerd` }[this.draft().adresHerkomst ?? 'handmatig']));\n  protected correspondentieLabel = computed(() => ({ email: $localize`:@@regWizard.corr.email:Per e-mail`, post: $localize`:@@regWizard.corr.post:Per post` }[this.draft().correspondentie ?? 'post']));\n  protected diplomaHerkomstLabel = computed(() => ({ duo: $localize`:@@regWizard.herkomst.diplomaDuo:Geverifieerd via DUO`, handmatig: $localize`:@@regWizard.herkomst.diplomaHandmatig:Handmatig ingevoerd (wordt beoordeeld)` }[this.draft().diplomaHerkomst ?? 'handmatig']));\n\n  /** BRP lookup outcome (laden/gevonden/geen/fout) and the parsed DUO lookup, both\n      served by the application facade — the wizard renders, it does not fetch/parse. */\n  protected adresStatus = this.lookup.adresStatus;\n  protected lookupRd: () => RemoteData<Error | undefined, DuoLookupDto> = this.lookup.duoLookup;\n\n  /** Parsed lookup as a plain value (or null) — used outside the beroep step (the\n      controle summary) where the <app-async> template variable isn't in scope. */\n  private duoData = computed<DuoLookupDto | null>(() => {\n    const rd = this.lookupRd();\n    return rd.tag === 'Success' ? rd.value : null;\n  });\n\n  readonly jaNee = JA_NEE;\n\n  protected err = (k: DraftField | 'correspondentie' | 'diploma' | 'documenten') => this.invullen()?.errors[k] ?? '';\n  protected vraagErr = (id: string) => this.invullen()?.errors.antwoorden?.[id] ?? '';\n  protected antwoord = (id: string) => this.draft().antwoorden[id] ?? ''; // runtime guard: missing key → undefined\n  protected set = (key: DraftField, value: string) => this.dispatch({ tag: 'SetField', key, value });\n  protected setKanaal = (value: string) => this.dispatch({ tag: 'SetCorrespondentie', value: value as Correspondentie });\n\n  /** True while the user is entering a diploma manually (not in the DUO list). */\n  protected handmatigActief = computed(() => this.draft().diplomaHerkomst === 'handmatig');\n  /** The radio selection: a diploma id, or the\"not listed\" sentinel in manual mode. */\n  protected diplomaKeuze = computed(() => (this.handmatigActief() ? HANDMATIG : this.draft().diplomaId ?? ''));\n\n  protected diplomaOptions = (data: DuoLookupDto) => [\n    ...data.diplomas.map((d) => ({ value: d.id, label: `${d.naam} — ${d.instelling} (${d.jaar})` })),\n    { value: HANDMATIG, label: $localize`:@@regWizard.diplomaNietBij:Mijn diploma staat er niet bij` },\n  ];\n\n  protected beroepOptions = (data: DuoLookupDto) => data.handmatig.beroepen.map((b) => ({ value: b, label: b }));\n\n  /** The policy questions that apply to the current choice (server-decided). */\n  protected actieveVragen = (data: DuoLookupDto): PolicyQuestionDto[] => {\n    if (this.handmatigActief()) return data.handmatig.policyQuestions;\n    return data.diplomas.find((d) => d.id === this.draft().diplomaId)?.policyQuestions ?? [];\n  };\n\n  /** Answered policy questions for the controle summary (question text + answer). */\n  protected samenvattingVragen = computed(() => {\n    const data = this.duoData();\n    const d = this.draft();\n    if (!data) return [] as { vraag: string; antwoord: string }[];\n    const alle = [...data.diplomas.flatMap((x) => x.policyQuestions), ...data.handmatig.policyQuestions];\n    return (d.vraagIds ?? []).map((id) => ({ vraag: alle.find((q) => q.id === id)?.vraag ?? id, antwoord: d.antwoorden[id] ?? '' }));\n  });\n\n  protected onDiplomaKeuze(data: DuoLookupDto, id: string) {\n    if (id === HANDMATIG) {\n      this.dispatch({ tag: 'KiesHandmatig', vraagIds: data.handmatig.policyQuestions.map((q) => q.id) });\n      return;\n    }\n    const d = data.diplomas.find((x) => x.id === id);\n    if (d) this.dispatch({ tag: 'KiesDiploma', diplomaId: d.id, beroep: d.beroep, vraagIds: d.policyQuestions.map((q) => q.id) });\n  }\n\n  constructor() {\n    // An explicit seed (stories/tests) wins; otherwise resume from the backend draft\n    // (`?aanvraag=<id>`), or start fresh. Persistence is the draftSync controller's job.\n    const seeded = this.seed();\n    queueMicrotask(() => (seeded !== initial ? this.dispatch({ tag: 'Seed', state: seeded }) : this.draftSync.resume()));\n    // Prefill the address from the BRP lookup as it arrives. Track only the facade's\n    // parsed prefill signal; untrack the dispatch (it reads the state signal, which\n    // would otherwise make this effect loop on its own write). Don't clobber\n    // edits/restored data. A null prefill (loading/error/geen adres) leaves manual entry.\n    effect(() => {\n      const a = this.lookup.prefillAdres();\n      if (!a) return;\n      untracked(() => {\n        const s = this.state();\n        if (s.tag !== 'Invullen' || s.draft.straat) return;\n        this.dispatch({ tag: 'PrefillAdres', straat: a.straat, postcode: a.postcode, woonplaats: a.woonplaats });\n      });\n    });\n    // A11y: focus management (step heading on step change, error summary on a\n    // failed submit) now lives in the shared WizardShellComponent.\n  }\n\n  onPrimary() {\n    const s = this.state();\n    if (s.tag !== 'Invullen') return;\n    this.dispatch(this.step() === 'controle' ? { tag: 'Submit' } : { tag: 'Next' });\n    this.runIfIndienen();\n  }\n\n  onRetry() {\n    this.dispatch({ tag: 'Retry' });\n    this.runIfIndienen();\n  }\n\n  /** Reset the wizard to a fresh start. Reload the BRP lookup so the address\n      re-prefills, keeping the form and the\"vooraf ingevuld\" note consistent. */\n  restart() {\n    this.draftSync.reset(); // discard the current Concept; a fresh one starts on next progress\n    this.dispatch({ tag: 'Seed', state: initial });\n    this.lookup.reloadAdres();\n  }\n\n  /** The effect: when we enter Indienen, submit through the aanvraag lifecycle\n      (duo → auto-approve, handmatig → manual), then dispatch the outcome. */\n  private async runIfIndienen() {\n    const s = this.state();\n    if (s.tag !== 'Indienen') return;\n    const r = await this.draftSync.submit({ diplomaHerkomst: s.data.diplomaHerkomst, documents: s.data.documents });\n    if (r.ok) this.dispatch({ tag: 'SubmitConfirmed', referentie: r.value.referentie ?? '' });\n    else this.dispatch({ tag: 'SubmitFailed', error: r.error });\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 338
            },
            "extends": []
        },
        {
            "name": "RegistrationDetailPage",
            "id": "component-RegistrationDetailPage-0b50be0253fc369bd6181ffcaccda334bf0cd0da280205bed4f1c09fd7e4543feba7fc28033cce9908257482bf69c50c346656ea4fe232ed7a7ecd61de102b21",
            "file": "src/app/registratie/ui/registration-detail.page.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-registration-detail-page",
            "styleUrls": [],
            "styles": [],
            "template": "<app-page-shell i18n-heading=\"@@registratieDetail.heading\" heading=\"Mijn gegevens\" backLink=\"/dashboard\">\n  <app-async [data]=\"store.profile()\">\n    <ng-template appAsyncLoaded let-p>\n      <app-registration-summary [reg]=\"$any(p).registration\" />\n    </ng-template>\n    <ng-template appAsyncLoading>\n      <app-skeleton height=\"2.5rem\" [count]=\"6\" />\n    </ng-template>\n  </app-async>\n\n  <div class=\"app-section\">\n    <app-change-request-form />\n  </div>\n</app-page-shell>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "store",
                    "defaultValue": "inject(BigProfileStore)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 33,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "PageShellComponent",
                    "type": "component"
                },
                {
                    "name": "SkeletonComponent",
                    "type": "component"
                },
                {
                    "name": "ASYNC"
                },
                {
                    "name": "RegistrationSummaryComponent",
                    "type": "component"
                },
                {
                    "name": "ChangeRequestFormComponent",
                    "type": "component"
                }
            ],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, inject } from '@angular/core';\nimport { PageShellComponent } from '@shared/layout/page-shell/page-shell.component';\nimport { SkeletonComponent } from '@shared/ui/skeleton/skeleton.component';\nimport { ASYNC } from '@shared/ui/async/async.component';\nimport { RegistrationSummaryComponent } from '@registratie/ui/registration-summary/registration-summary.component';\nimport { ChangeRequestFormComponent } from '@registratie/ui/change-request-form/change-request-form.component';\nimport { BigProfileStore } from '@registratie/application/big-profile.store';\n\n@Component({\n  selector: 'app-registration-detail-page',\n  imports: [\n    PageShellComponent, SkeletonComponent, ...ASYNC,\n    RegistrationSummaryComponent, ChangeRequestFormComponent,\n  ],\n  template: `\n    <app-page-shell i18n-heading=\"@@registratieDetail.heading\" heading=\"Mijn gegevens\" backLink=\"/dashboard\">\n      <app-async [data]=\"store.profile()\">\n        <ng-template appAsyncLoaded let-p>\n          <app-registration-summary [reg]=\"$any(p).registration\" />\n        </ng-template>\n        <ng-template appAsyncLoading>\n          <app-skeleton height=\"2.5rem\" [count]=\"6\" />\n        </ng-template>\n      </app-async>\n\n      <div class=\"app-section\">\n        <app-change-request-form />\n      </div>\n    </app-page-shell>\n  `,\n})\nexport class RegistrationDetailPage {\n  protected store = inject(BigProfileStore);\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "RegistrationSummaryComponent",
            "id": "component-RegistrationSummaryComponent-43f69cd13bc198c5af28e830fb9f0e9f4dff76d9ee57d702d06036fdabf56ccd8a23a387cc498bb6a51e85c44b276396685520e1f5ae92a9dccf8109e21af4c5",
            "file": "src/app/registratie/ui/registration-summary/registration-summary.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-registration-summary",
            "styleUrls": [],
            "styles": [],
            "template": "<app-data-block i18n-ariaLabel=\"@@summary.ariaLabel\" ariaLabel=\"Registratiegegevens\">\n  <div app-data-row i18n-key=\"@@summary.bigNummer\" key=\"BIG-nummer\" [value]=\"reg().bigNummer\"></div>\n  <div app-data-row i18n-key=\"@@summary.naam\" key=\"Naam\" [value]=\"reg().naam\"></div>\n  <div app-data-row i18n-key=\"@@summary.beroep\" key=\"Beroep\" [value]=\"reg().beroep\"></div>\n  <div app-data-row i18n-key=\"@@summary.status\" key=\"Status\">\n    <app-status-badge [label]=\"label()\" [color]=\"color()\" />\n  </div>\n  <div app-data-row i18n-key=\"@@summary.registratiedatum\" key=\"Registratiedatum\" [value]=\"reg().registratiedatum | date:'longDate'\"></div>\n  <!-- Each status variant renders only the row its own data supports. -->\n  @switch (reg().status.tag) {\n    @case ('Geregistreerd') {\n      <div app-data-row i18n-key=\"@@summary.uiterste\" key=\"Uiterste herregistratie\" [value]=\"$any(reg().status).herregistratieDatum | date:'longDate'\"></div>\n    }\n    @case ('Geschorst') {\n      <div app-data-row i18n-key=\"@@summary.geschorstTot\" key=\"Geschorst tot\" [value]=\"$any(reg().status).geschorstTot | date:'longDate'\"></div>\n      <div app-data-row i18n-key=\"@@summary.reden\" key=\"Reden\" [value]=\"$any(reg().status).reden\"></div>\n    }\n    @case ('Doorgehaald') {\n      <div app-data-row i18n-key=\"@@summary.doorgehaaldOp\" key=\"Doorgehaald op\" [value]=\"$any(reg().status).doorgehaaldOp | date:'longDate'\"></div>\n      <div app-data-row i18n-key=\"@@summary.reden\" key=\"Reden\" [value]=\"$any(reg().status).reden\"></div>\n    }\n  }\n</app-data-block>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "reg",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Registration",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 41,
                    "required": true
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "color",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 43,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "label",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 42,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "DatePipe",
                    "type": "pipe"
                },
                {
                    "name": "DataRowComponent",
                    "type": "component"
                },
                {
                    "name": "StatusBadgeComponent",
                    "type": "component"
                },
                {
                    "name": "DataBlockComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Organism: registration summary in a CIBG Datablock. Composes data-row rows +\nstatus-badge atom (no card wrapper — the datablock carries its own surface).</p>\n",
            "rawdescription": "\nOrganism: registration summary in a CIBG Datablock. Composes data-row rows +\nstatus-badge atom (no card wrapper — the datablock carries its own surface).",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { Registration } from '@registratie/domain/registration';\nimport { statusColor, statusLabel } from '@registratie/domain/registration.policy';\nimport { DataRowComponent } from '@shared/ui/data-row/data-row.component';\nimport { StatusBadgeComponent } from '@shared/ui/status-badge/status-badge.component';\nimport { DataBlockComponent } from '@shared/ui/data-block/data-block.component';\n\n/** Organism: registration summary in a CIBG Datablock. Composes data-row rows +\n    status-badge atom (no card wrapper — the datablock carries its own surface). */\n@Component({\n  selector: 'app-registration-summary',\n  imports: [DatePipe, DataRowComponent, StatusBadgeComponent, DataBlockComponent],\n  template: `\n    <app-data-block i18n-ariaLabel=\"@@summary.ariaLabel\" ariaLabel=\"Registratiegegevens\">\n      <div app-data-row i18n-key=\"@@summary.bigNummer\" key=\"BIG-nummer\" [value]=\"reg().bigNummer\"></div>\n      <div app-data-row i18n-key=\"@@summary.naam\" key=\"Naam\" [value]=\"reg().naam\"></div>\n      <div app-data-row i18n-key=\"@@summary.beroep\" key=\"Beroep\" [value]=\"reg().beroep\"></div>\n      <div app-data-row i18n-key=\"@@summary.status\" key=\"Status\">\n        <app-status-badge [label]=\"label()\" [color]=\"color()\" />\n      </div>\n      <div app-data-row i18n-key=\"@@summary.registratiedatum\" key=\"Registratiedatum\" [value]=\"reg().registratiedatum | date:'longDate'\"></div>\n      <!-- Each status variant renders only the row its own data supports. -->\n      @switch (reg().status.tag) {\n        @case ('Geregistreerd') {\n          <div app-data-row i18n-key=\"@@summary.uiterste\" key=\"Uiterste herregistratie\" [value]=\"$any(reg().status).herregistratieDatum | date:'longDate'\"></div>\n        }\n        @case ('Geschorst') {\n          <div app-data-row i18n-key=\"@@summary.geschorstTot\" key=\"Geschorst tot\" [value]=\"$any(reg().status).geschorstTot | date:'longDate'\"></div>\n          <div app-data-row i18n-key=\"@@summary.reden\" key=\"Reden\" [value]=\"$any(reg().status).reden\"></div>\n        }\n        @case ('Doorgehaald') {\n          <div app-data-row i18n-key=\"@@summary.doorgehaaldOp\" key=\"Doorgehaald op\" [value]=\"$any(reg().status).doorgehaaldOp | date:'longDate'\"></div>\n          <div app-data-row i18n-key=\"@@summary.reden\" key=\"Reden\" [value]=\"$any(reg().status).reden\"></div>\n        }\n      }\n    </app-data-block>\n  `,\n})\nexport class RegistrationSummaryComponent {\n  reg = input.required<Registration>();\n  protected label = () => statusLabel(this.reg().status.tag);\n  protected color = () => statusColor(this.reg().status.tag);\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "RegistrationTableComponent",
            "id": "component-RegistrationTableComponent-53c24dd1c08fb2937bc8d49a1bb3f19086123810144ec19a5da66d34b8979ca3ff12c0b3f6075cf65b9ec3f373934a0342fbc55e586c15ff341f98952a398669",
            "file": "src/app/registratie/ui/registration-table/registration-table.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-registration-table",
            "styleUrls": [],
            "styles": [],
            "template": "<div class=\"table-responsive\">\n  <table class=\"table table-striped\">\n    <thead>\n      <tr>\n        <th scope=\"col\" i18n=\"@@table.type\">Type</th>\n        <th scope=\"col\" i18n=\"@@table.omschrijving\">Omschrijving</th>\n        <th scope=\"col\" i18n=\"@@table.datum\">Datum</th>\n      </tr>\n    </thead>\n    <tbody>\n      @for (row of rows(); track row.omschrijving) {\n        <tr>\n          <td>{{ row.type }}</td>\n          <td>{{ row.omschrijving }}</td>\n          <td>{{ row.datum | date:'mediumDate' }}</td>\n        </tr>\n      }\n    </tbody>\n  </table>\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "rows",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Aantekening[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 33,
                    "required": true
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "DatePipe",
                    "type": "pipe"
                }
            ],
            "description": "<p>Organism: table of specialismen/aantekeningen.</p>\n",
            "rawdescription": "\nOrganism: table of specialismen/aantekeningen.",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { Aantekening } from '@registratie/domain/registration';\n\n/** Organism: table of specialismen/aantekeningen. */\n@Component({\n  selector: 'app-registration-table',\n  imports: [DatePipe],\n  template: `\n    <div class=\"table-responsive\">\n      <table class=\"table table-striped\">\n        <thead>\n          <tr>\n            <th scope=\"col\" i18n=\"@@table.type\">Type</th>\n            <th scope=\"col\" i18n=\"@@table.omschrijving\">Omschrijving</th>\n            <th scope=\"col\" i18n=\"@@table.datum\">Datum</th>\n          </tr>\n        </thead>\n        <tbody>\n          @for (row of rows(); track row.omschrijving) {\n            <tr>\n              <td>{{ row.type }}</td>\n              <td>{{ row.omschrijving }}</td>\n              <td>{{ row.datum | date:'mediumDate' }}</td>\n            </tr>\n          }\n        </tbody>\n      </table>\n    </div>\n  `,\n})\nexport class RegistrationTableComponent {\n  rows = input.required<Aantekening[]>();\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "RejectionCommentsComponent",
            "id": "component-RejectionCommentsComponent-7e1055c413d10d13e3375affac0d91ad7952b262e9984a3b00325a530705d427257bb9d2625e64baf920a98385a9121fc96750a41216be6fc2e1866149bc14e6",
            "file": "src/app/brief/ui/rejection-comments/rejection-comments.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-rejection-comments",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:block}\n    textarea{inline-size:100%;box-sizing:border-box;min-block-size:4rem;margin-block:var(--rhc-space-max-sm)}\n    label{font-weight:600}\n  "
            ],
            "template": "@if (mode() === 'show') {\n  <app-alert type=\"warning\"><strong>{{ rejectedTitle() }}</strong> {{ comments() }}</app-alert>\n} @else {\n  <label for=\"reject-comments\">{{ entryLabel() }}</label>\n  <textarea id=\"reject-comments\" [(ngModel)]=\"draft\"></textarea>\n  <app-button variant=\"danger\" [disabled]=\"!draft().trim() || busy()\" (click)=\"submit()\">{{ rejectLabel() }}</app-button>\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "busy",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 29,
                    "required": false
                },
                {
                    "name": "comments",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 28,
                    "required": false
                },
                {
                    "name": "entryLabel",
                    "defaultValue": "$localize`:@@brief.reject.entryLabel:Reden van afwijzing`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 33,
                    "required": false
                },
                {
                    "name": "mode",
                    "defaultValue": "'show'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "\"show\" | \"entry\"",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 27,
                    "required": false
                },
                {
                    "name": "rejectedTitle",
                    "defaultValue": "$localize`:@@brief.reject.title:Afgewezen:`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 32,
                    "required": false
                },
                {
                    "name": "rejectLabel",
                    "defaultValue": "$localize`:@@brief.reject.button:Afwijzen`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 34,
                    "required": false
                }
            ],
            "outputsClass": [
                {
                    "name": "reject",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 30,
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "draft",
                    "defaultValue": "signal('')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 36,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "submit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 38,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "FormsModule",
                    "type": "module"
                },
                {
                    "name": "AlertComponent",
                    "type": "component"
                },
                {
                    "name": "ButtonComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Molecule: shows the rejection comments (drafter view) or collects them from the\napprover. The approver rejects WITH comments; they never edit the letter.</p>\n",
            "rawdescription": "\nMolecule: shows the rejection comments (drafter view) or collects them from the\napprover. The approver rejects WITH comments; they never edit the letter.",
            "type": "component",
            "sourceCode": "import { Component, input, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\n\n/** Molecule: shows the rejection comments (drafter view) or collects them from the\n    approver. The approver rejects WITH comments; they never edit the letter. */\n@Component({\n  selector: 'app-rejection-comments',\n  imports: [FormsModule, AlertComponent, ButtonComponent],\n  styles: [`\n    :host{display:block}\n    textarea{inline-size:100%;box-sizing:border-box;min-block-size:4rem;margin-block:var(--rhc-space-max-sm)}\n    label{font-weight:600}\n  `],\n  template: `\n    @if (mode() === 'show') {\n      <app-alert type=\"warning\"><strong>{{ rejectedTitle() }}</strong> {{ comments() }}</app-alert>\n    } @else {\n      <label for=\"reject-comments\">{{ entryLabel() }}</label>\n      <textarea id=\"reject-comments\" [(ngModel)]=\"draft\"></textarea>\n      <app-button variant=\"danger\" [disabled]=\"!draft().trim() || busy()\" (click)=\"submit()\">{{ rejectLabel() }}</app-button>\n    }\n  `,\n})\nexport class RejectionCommentsComponent {\n  mode = input<'show' | 'entry'>('show');\n  comments = input('');\n  busy = input(false);\n  reject = output<string>();\n\n  rejectedTitle = input($localize`:@@brief.reject.title:Afgewezen:`);\n  entryLabel = input($localize`:@@brief.reject.entryLabel:Reden van afwijzing`);\n  rejectLabel = input($localize`:@@brief.reject.button:Afwijzen`);\n\n  protected draft = signal('');\n\n  protected submit() {\n    const c = this.draft().trim();\n    if (c) this.reject.emit(c);\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:block}\n    textarea{inline-size:100%;box-sizing:border-box;min-block-size:4rem;margin-block:var(--rhc-space-max-sm)}\n    label{font-weight:600}\n  \n",
            "extends": []
        },
        {
            "name": "ReviewSectionComponent",
            "id": "component-ReviewSectionComponent-e8d955afba1fc3c265c283f41e1197173ef18ea7cd7a45ca9fd73b9b846fc7125207d282dbe1456e62e897850b107f96d45906bce4d959aa075fdc3fdb402f73",
            "file": "src/app/shared/ui/review-section/review-section.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-review-section",
            "styleUrls": [],
            "styles": [],
            "template": "<div class=\"d-flex\">\n  <h2>{{ heading() }}</h2>\n  @if (showEdit()) {\n    <div class=\"ms-auto\">\n      <a href=\"#\" [attr.aria-label]=\"editAriaLabel() || editLabel()\" (click)=\"onEdit($event)\">{{ editLabel() }}</a>\n    </div>\n  }\n</div>\n<app-data-block><ng-content /></app-data-block>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "editAriaLabel",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 26,
                    "required": false
                },
                {
                    "name": "editLabel",
                    "defaultValue": "$localize`:@@reviewSection.wijzigen:Wijzigen`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 25,
                    "required": false
                },
                {
                    "name": "heading",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 24,
                    "required": true
                },
                {
                    "name": "showEdit",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 27,
                    "required": false
                }
            ],
            "outputsClass": [
                {
                    "name": "edit",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 29,
                    "required": false
                }
            ],
            "propertiesClass": [],
            "methodsClass": [
                {
                    "name": "onEdit",
                    "args": [
                        {
                            "name": "ev",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 31,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "ev",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "DataBlockComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Molecule: one section of a CIBG Huisstijl &quot;controlestap&quot; (wizard review step) —\na heading with a &quot;Wijzigen&quot; link, and the section&#39;s <code>&lt;app-data-row&gt;</code>s in a CIBG\nDatablock (composes <code>&lt;app-data-block&gt;</code>). Domain-free; the caller supplies the\nheading and decides what &quot;Wijzigen&quot; does (typically jump back to a step).</p>\n",
            "rawdescription": "\nMolecule: one section of a CIBG Huisstijl \"controlestap\" (wizard review step) —\na heading with a \"Wijzigen\" link, and the section's `<app-data-row>`s in a CIBG\nDatablock (composes `<app-data-block>`). Domain-free; the caller supplies the\nheading and decides what \"Wijzigen\" does (typically jump back to a step).",
            "type": "component",
            "sourceCode": "import { Component, input, output } from '@angular/core';\nimport { DataBlockComponent } from '@shared/ui/data-block/data-block.component';\n\n/** Molecule: one section of a CIBG Huisstijl \"controlestap\" (wizard review step) —\n    a heading with a \"Wijzigen\" link, and the section's `<app-data-row>`s in a CIBG\n    Datablock (composes `<app-data-block>`). Domain-free; the caller supplies the\n    heading and decides what \"Wijzigen\" does (typically jump back to a step). */\n@Component({\n  selector: 'app-review-section',\n  imports: [DataBlockComponent],\n  template: `\n    <div class=\"d-flex\">\n      <h2>{{ heading() }}</h2>\n      @if (showEdit()) {\n        <div class=\"ms-auto\">\n          <a href=\"#\" [attr.aria-label]=\"editAriaLabel() || editLabel()\" (click)=\"onEdit($event)\">{{ editLabel() }}</a>\n        </div>\n      }\n    </div>\n    <app-data-block><ng-content /></app-data-block>\n  `,\n})\nexport class ReviewSectionComponent {\n  heading = input.required<string>();\n  editLabel = input($localize`:@@reviewSection.wijzigen:Wijzigen`);\n  editAriaLabel = input('');\n  showEdit = input(true);\n\n  edit = output<void>();\n\n  protected onEdit(ev: Event) {\n    ev.preventDefault(); // fragment href resolves against <base href>, not the route\n    this.edit.emit();\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "RichTextEditorComponent",
            "id": "component-RichTextEditorComponent-4c9a9a5d4bb9dab7bd9e7947414aa0d5db7b5200cd68b6764a0343f354365decd1f3575978b9eb5e2d371f978213f6c65307a95e423e8e68efd7c6d3edb9df13",
            "file": "src/app/shared/ui/rich-text-editor/rich-text-editor.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-rich-text-editor",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:block}\n    .rte-toolbar{display:flex;flex-wrap:wrap;gap:var(--rhc-space-max-sm);align-items:center;margin-block-end:var(--rhc-space-max-sm)}\n    .rte-toolbar button{min-inline-size:2.2rem}\n    .rte-sep{inline-size:1px;align-self:stretch;background:var(--rhc-color-border-default)}\n    .rte-editable{\n      border:1px solid var(--rhc-color-border-default);border-radius:var(--rhc-border-radius-sm);\n      padding:var(--rhc-space-max-md);min-block-size:4rem;\n    }\n    .rte-editable[contenteditable='false']{background:var(--rhc-color-cool-grey-100)}\n    .rte-editable :is(p){margin:0 0 var(--rhc-space-max-sm)}\n    .rte-editable :is(ul,ol){margin:0 0 var(--rhc-space-max-sm);padding-inline-start:1.4em}\n    /* Placeholder chips read as fill-in fields: auto-resolvable (grey, filled server-side)\n       vs manual (yellow, still needs a value). The read-only preview adds error/warning states.\n       Chips are created imperatively (createChip) inside contenteditable, so they never receive\n       Angular's _ngcontent scoping attribute — ::ng-deep is required or the rules won't match them.\n       Braces use unicode escapes; a literal { in a CSS content string breaks the style parser. */\n    :host ::ng-deep .rte-chip{\n      border:1px dashed var(--rhc-color-border-default);border-radius:var(--rhc-border-radius-sm);\n      padding:0 0.3em;white-space:nowrap;\n    }\n    :host ::ng-deep .rte-chip[data-auto='true']{background:var(--rhc-color-cool-grey-100)}\n    :host ::ng-deep .rte-chip[data-auto='false']{background:var(--rhc-color-geel-100)}\n    :host ::ng-deep .rte-chip::before{content:'\\7B';opacity:0.6;font-weight:700;margin-inline-end:0.1em}\n    :host ::ng-deep .rte-chip::after{content:'\\7D';opacity:0.6;font-weight:700;margin-inline-start:0.1em}\n  "
            ],
            "template": "@if (editable()) {\n  <div class=\"rte-toolbar\" role=\"toolbar\" [attr.aria-label]=\"toolbarLabel()\">\n    <button type=\"button\" class=\"btn btn-outline-secondary btn-sm\" (mousedown)=\"$event.preventDefault()\" (click)=\"format('bold')\" [attr.aria-label]=\"boldLabel()\"><b>B</b></button>\n    <button type=\"button\" class=\"btn btn-outline-secondary btn-sm\" (mousedown)=\"$event.preventDefault()\" (click)=\"format('italic')\" [attr.aria-label]=\"italicLabel()\"><i>I</i></button>\n    <button type=\"button\" class=\"btn btn-outline-secondary btn-sm\" (mousedown)=\"$event.preventDefault()\" (click)=\"format('underline')\" [attr.aria-label]=\"underlineLabel()\"><u>U</u></button>\n    <span class=\"rte-sep\" aria-hidden=\"true\"></span>\n    <button type=\"button\" class=\"btn btn-outline-secondary btn-sm\" (mousedown)=\"$event.preventDefault()\" (click)=\"list('bullet')\" [attr.aria-label]=\"bulletListLabel()\">•</button>\n    <button type=\"button\" class=\"btn btn-outline-secondary btn-sm\" (mousedown)=\"$event.preventDefault()\" (click)=\"list('number')\" [attr.aria-label]=\"numberListLabel()\">1.</button>\n    @if (placeholders().length) {\n      <span class=\"rte-sep\" aria-hidden=\"true\"></span>\n      <label>\n        <span class=\"app-text-subtle\">{{ insertLabel() }}</span>\n        <select #ins (change)=\"insert(ins.value); ins.value = ''\">\n          <option value=\"\" selected>{{ insertPrompt() }}</option>\n          @for (p of placeholders(); track p.key) {\n            <option [value]=\"p.key\">{{ p.label }}</option>\n          }\n        </select>\n      </label>\n    }\n  </div>\n}\n<div #editor class=\"rte-editable\" [attr.contenteditable]=\"editable()\" (input)=\"emit()\" (keydown)=\"onKeydown($event)\"\n     role=\"textbox\" aria-multiline=\"true\" [attr.aria-label]=\"fieldLabel()\"></div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "boldLabel",
                    "defaultValue": "$localize`:@@richTextEditor.bold:Vet`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 88,
                    "required": false
                },
                {
                    "name": "bulletListLabel",
                    "defaultValue": "$localize`:@@richTextEditor.bulletList:Opsomming`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 93,
                    "required": false
                },
                {
                    "name": "content",
                    "defaultValue": "emptyBlock()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RichTextBlock",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 80,
                    "required": false
                },
                {
                    "name": "editable",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 82,
                    "required": false
                },
                {
                    "name": "fieldLabel",
                    "defaultValue": "$localize`:@@richTextEditor.field:Tekst`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 86,
                    "required": false
                },
                {
                    "name": "insertLabel",
                    "defaultValue": "$localize`:@@richTextEditor.insert:Veld invoegen:`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 91,
                    "required": false
                },
                {
                    "name": "insertPrompt",
                    "defaultValue": "$localize`:@@richTextEditor.insertPrompt:Kies…`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 92,
                    "required": false
                },
                {
                    "name": "italicLabel",
                    "defaultValue": "$localize`:@@richTextEditor.italic:Cursief`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 89,
                    "required": false
                },
                {
                    "name": "numberListLabel",
                    "defaultValue": "$localize`:@@richTextEditor.numberList:Genummerde lijst`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 94,
                    "required": false
                },
                {
                    "name": "placeholders",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "readonly PlaceholderOption[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 81,
                    "required": false
                },
                {
                    "name": "toolbarLabel",
                    "defaultValue": "$localize`:@@richTextEditor.toolbar:Opmaak`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 87,
                    "required": false
                },
                {
                    "name": "underlineLabel",
                    "defaultValue": "$localize`:@@richTextEditor.underline:Onderstreept`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 90,
                    "required": false
                }
            ],
            "outputsClass": [
                {
                    "name": "contentChanged",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RichTextBlock",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 83,
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "autoFor",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 100,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "editorEl",
                    "defaultValue": "viewChild<ElementRef<HTMLElement>>('editor')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 96,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "labelFor",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 99,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "lastEmitted",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 97,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "deleteAdjacentChip",
                    "args": [
                        {
                            "name": "e",
                            "type": "KeyboardEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 160,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nBackspace/Delete next to a contenteditable=false chip removes it ourselves —\nbrowsers otherwise leave these atomic chips undeletable. Selections fall through.",
                    "description": "<p>Backspace/Delete next to a contenteditable=false chip removes it ourselves —\nbrowsers otherwise leave these atomic chips undeletable. Selections fall through.</p>\n",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "e",
                            "type": "KeyboardEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "emit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 116,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "format",
                    "args": [
                        {
                            "name": "cmd",
                            "type": "\"bold\" | \"italic\" | \"underline\"",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 124,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "cmd",
                            "type": "\"bold\" | \"italic\" | \"underline\"",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "insert",
                    "args": [
                        {
                            "name": "key",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 174,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "key",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "list",
                    "args": [
                        {
                            "name": "kind",
                            "type": "\"bullet\" | \"number\"",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 136,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nBullet / numbered lists via execCommand — same deprecated-but-universal path as\nbold/italic (ponytail-noted on `format`); readBlock reads the resulting <ul>/<ol>.",
                    "description": "<p>Bullet / numbered lists via execCommand — same deprecated-but-universal path as\nbold/italic (ponytail-noted on <code>format</code>); readBlock reads the resulting <ul>/<ol>.</p>\n",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "kind",
                            "type": "\"bullet\" | \"number\"",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "onKeydown",
                    "args": [
                        {
                            "name": "e",
                            "type": "KeyboardEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 146,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nCtrl/Cmd+B/I/U → our format() (+ preventDefault) so serialization runs and behaviour\nis consistent across browsers rather than relying on the native handler.",
                    "description": "<p>Ctrl/Cmd+B/I/U → our format() (+ preventDefault) so serialization runs and behaviour\nis consistent across browsers rather than relying on the native handler.</p>\n",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "e",
                            "type": "KeyboardEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Molecule: a minimal no-dependency WYSIWYG editor over a <code>RichTextBlock</code>.</p>\n<p>It is the single quarantined boundary to the imperative <code>contenteditable</code> DOM:\n<code>content</code> in, <code>contentChanged</code> (a <code>RichTextBlock</code>) out, holding NO letter state.\nPlaceholders render as non-editable chips and can only be inserted from the menu\n(valid keys only) — never typed as raw braces. Swapping in a real editor library\nlater (TipTap) means replacing only this component; nothing else sees the DOM.</p>\n",
            "rawdescription": "\n\nMolecule: a minimal no-dependency WYSIWYG editor over a `RichTextBlock`.\n\nIt is the single quarantined boundary to the imperative `contenteditable` DOM:\n`content` in, `contentChanged` (a `RichTextBlock`) out, holding NO letter state.\nPlaceholders render as non-editable chips and can only be inserted from the menu\n(valid keys only) — never typed as raw braces. Swapping in a real editor library\nlater (TipTap) means replacing only this component; nothing else sees the DOM.\n",
            "type": "component",
            "sourceCode": "import { Component, ElementRef, computed, effect, input, output, viewChild } from '@angular/core';\nimport { RichTextBlock, emptyBlock } from '@shared/kernel/rich-text';\nimport { adjacentChip, createChip, readBlock, renderInto } from './rich-text-dom';\n\n/** A menu entry for the insert-placeholder control — a plain {key,label}, so the\n    editor stays domain-free (it never sees the brief's PlaceholderDef). */\nexport interface PlaceholderOption {\n  readonly key: string;\n  readonly label: string;\n  // Auto-resolvable fields are filled server-side at send; manual fields need a value.\n  // Drives the chip's styling so the two read apart at a glance.\n  readonly autoResolvable?: boolean;\n}\n\n/**\n * Molecule: a minimal no-dependency WYSIWYG editor over a `RichTextBlock`.\n *\n * It is the single quarantined boundary to the imperative `contenteditable` DOM:\n * `content` in, `contentChanged` (a `RichTextBlock`) out, holding NO letter state.\n * Placeholders render as non-editable chips and can only be inserted from the menu\n * (valid keys only) — never typed as raw braces. Swapping in a real editor library\n * later (TipTap) means replacing only this component; nothing else sees the DOM.\n */\n@Component({\n  selector: 'app-rich-text-editor',\n  styles: [`\n    :host{display:block}\n    .rte-toolbar{display:flex;flex-wrap:wrap;gap:var(--rhc-space-max-sm);align-items:center;margin-block-end:var(--rhc-space-max-sm)}\n    .rte-toolbar button{min-inline-size:2.2rem}\n    .rte-sep{inline-size:1px;align-self:stretch;background:var(--rhc-color-border-default)}\n    .rte-editable{\n      border:1px solid var(--rhc-color-border-default);border-radius:var(--rhc-border-radius-sm);\n      padding:var(--rhc-space-max-md);min-block-size:4rem;\n    }\n    .rte-editable[contenteditable='false']{background:var(--rhc-color-cool-grey-100)}\n    .rte-editable :is(p){margin:0 0 var(--rhc-space-max-sm)}\n    .rte-editable :is(ul,ol){margin:0 0 var(--rhc-space-max-sm);padding-inline-start:1.4em}\n    /* Placeholder chips read as fill-in fields: auto-resolvable (grey, filled server-side)\n       vs manual (yellow, still needs a value). The read-only preview adds error/warning states.\n       Chips are created imperatively (createChip) inside contenteditable, so they never receive\n       Angular's _ngcontent scoping attribute — ::ng-deep is required or the rules won't match them.\n       Braces use unicode escapes; a literal { in a CSS content string breaks the style parser. */\n    :host ::ng-deep .rte-chip{\n      border:1px dashed var(--rhc-color-border-default);border-radius:var(--rhc-border-radius-sm);\n      padding:0 0.3em;white-space:nowrap;\n    }\n    :host ::ng-deep .rte-chip[data-auto='true']{background:var(--rhc-color-cool-grey-100)}\n    :host ::ng-deep .rte-chip[data-auto='false']{background:var(--rhc-color-geel-100)}\n    :host ::ng-deep .rte-chip::before{content:'\\\\7B';opacity:0.6;font-weight:700;margin-inline-end:0.1em}\n    :host ::ng-deep .rte-chip::after{content:'\\\\7D';opacity:0.6;font-weight:700;margin-inline-start:0.1em}\n  `],\n  template: `\n    @if (editable()) {\n      <div class=\"rte-toolbar\" role=\"toolbar\" [attr.aria-label]=\"toolbarLabel()\">\n        <button type=\"button\" class=\"btn btn-outline-secondary btn-sm\" (mousedown)=\"$event.preventDefault()\" (click)=\"format('bold')\" [attr.aria-label]=\"boldLabel()\"><b>B</b></button>\n        <button type=\"button\" class=\"btn btn-outline-secondary btn-sm\" (mousedown)=\"$event.preventDefault()\" (click)=\"format('italic')\" [attr.aria-label]=\"italicLabel()\"><i>I</i></button>\n        <button type=\"button\" class=\"btn btn-outline-secondary btn-sm\" (mousedown)=\"$event.preventDefault()\" (click)=\"format('underline')\" [attr.aria-label]=\"underlineLabel()\"><u>U</u></button>\n        <span class=\"rte-sep\" aria-hidden=\"true\"></span>\n        <button type=\"button\" class=\"btn btn-outline-secondary btn-sm\" (mousedown)=\"$event.preventDefault()\" (click)=\"list('bullet')\" [attr.aria-label]=\"bulletListLabel()\">•</button>\n        <button type=\"button\" class=\"btn btn-outline-secondary btn-sm\" (mousedown)=\"$event.preventDefault()\" (click)=\"list('number')\" [attr.aria-label]=\"numberListLabel()\">1.</button>\n        @if (placeholders().length) {\n          <span class=\"rte-sep\" aria-hidden=\"true\"></span>\n          <label>\n            <span class=\"app-text-subtle\">{{ insertLabel() }}</span>\n            <select #ins (change)=\"insert(ins.value); ins.value = ''\">\n              <option value=\"\" selected>{{ insertPrompt() }}</option>\n              @for (p of placeholders(); track p.key) {\n                <option [value]=\"p.key\">{{ p.label }}</option>\n              }\n            </select>\n          </label>\n        }\n      </div>\n    }\n    <div #editor class=\"rte-editable\" [attr.contenteditable]=\"editable()\" (input)=\"emit()\" (keydown)=\"onKeydown($event)\"\n         role=\"textbox\" aria-multiline=\"true\" [attr.aria-label]=\"fieldLabel()\"></div>\n  `,\n})\nexport class RichTextEditorComponent {\n  content = input<RichTextBlock>(emptyBlock());\n  placeholders = input<readonly PlaceholderOption[]>([]);\n  editable = input(true);\n  contentChanged = output<RichTextBlock>();\n\n  // Localizable-by-default copy (shared-UI convention).\n  fieldLabel = input($localize`:@@richTextEditor.field:Tekst`);\n  toolbarLabel = input($localize`:@@richTextEditor.toolbar:Opmaak`);\n  boldLabel = input($localize`:@@richTextEditor.bold:Vet`);\n  italicLabel = input($localize`:@@richTextEditor.italic:Cursief`);\n  underlineLabel = input($localize`:@@richTextEditor.underline:Onderstreept`);\n  insertLabel = input($localize`:@@richTextEditor.insert:Veld invoegen:`);\n  insertPrompt = input($localize`:@@richTextEditor.insertPrompt:Kies…`);\n  bulletListLabel = input($localize`:@@richTextEditor.bulletList:Opsomming`);\n  numberListLabel = input($localize`:@@richTextEditor.numberList:Genummerde lijst`);\n\n  private editorEl = viewChild<ElementRef<HTMLElement>>('editor');\n  private lastEmitted = '';\n\n  private labelFor = (key: string) => this.placeholders().find((p) => p.key === key)?.label ?? key;\n  private autoFor = (key: string) => this.placeholders().find((p) => p.key === key)?.autoResolvable ?? false;\n\n  constructor() {\n    // Render when content arrives/changes from OUTSIDE. Skip our own emitted value\n    // flowing back (structural compare) so the caret isn't reset while typing.\n    effect(() => {\n      const content = this.content();\n      const el = this.editorEl()?.nativeElement;\n      if (!el) return;\n      const serialized = JSON.stringify(content);\n      if (serialized === this.lastEmitted) return;\n      renderInto(el, content, this.labelFor, this.autoFor);\n      this.lastEmitted = serialized;\n    });\n  }\n\n  protected emit() {\n    const el = this.editorEl()?.nativeElement;\n    if (!el) return;\n    const block = readBlock(el);\n    this.lastEmitted = JSON.stringify(block);\n    this.contentChanged.emit(block);\n  }\n\n  protected format(cmd: 'bold' | 'italic' | 'underline') {\n    const el = this.editorEl()?.nativeElement;\n    if (!el) return;\n    el.focus();\n    // ponytail: execCommand is deprecated but universally supported and zero-dependency;\n    // if a browser drops it, this component is the one place to swap in a range-based impl.\n    el.ownerDocument.execCommand(cmd);\n    this.emit();\n  }\n\n  /** Bullet / numbered lists via execCommand — same deprecated-but-universal path as\n      bold/italic (ponytail-noted on `format`); readBlock reads the resulting <ul>/<ol>. */\n  protected list(kind: 'bullet' | 'number') {\n    const el = this.editorEl()?.nativeElement;\n    if (!el) return;\n    el.focus();\n    el.ownerDocument.execCommand(kind === 'bullet' ? 'insertUnorderedList' : 'insertOrderedList');\n    this.emit();\n  }\n\n  /** Ctrl/Cmd+B/I/U → our format() (+ preventDefault) so serialization runs and behaviour\n      is consistent across browsers rather than relying on the native handler. */\n  protected onKeydown(e: KeyboardEvent) {\n    if (e.key === 'Backspace' || e.key === 'Delete') {\n      this.deleteAdjacentChip(e);\n      return;\n    }\n    if (!(e.ctrlKey || e.metaKey) || e.altKey) return;\n    const cmd = { b: 'bold', i: 'italic', u: 'underline' }[e.key.toLowerCase()] as 'bold' | 'italic' | 'underline' | undefined;\n    if (!cmd) return;\n    e.preventDefault();\n    this.format(cmd);\n  }\n\n  /** Backspace/Delete next to a contenteditable=false chip removes it ourselves —\n      browsers otherwise leave these atomic chips undeletable. Selections fall through. */\n  private deleteAdjacentChip(e: KeyboardEvent) {\n    const el = this.editorEl()?.nativeElement;\n    if (!el) return;\n    const sel = el.ownerDocument.getSelection();\n    if (!sel || !sel.isCollapsed || !sel.rangeCount) return;\n    const range = sel.getRangeAt(0);\n    if (!el.contains(range.startContainer)) return;\n    const chip = adjacentChip(range.startContainer, range.startOffset, e.key === 'Backspace' ? -1 : 1);\n    if (!chip) return;\n    e.preventDefault();\n    chip.remove();\n    this.emit();\n  }\n\n  protected insert(key: string) {\n    const el = this.editorEl()?.nativeElement;\n    if (!key || !el) return;\n    el.focus();\n    const chip = createChip(el.ownerDocument, key, this.labelFor(key), this.autoFor(key));\n    const sel = el.ownerDocument.getSelection();\n    if (sel && sel.rangeCount && el.contains(sel.anchorNode)) {\n      const range = sel.getRangeAt(0);\n      range.deleteContents();\n      range.insertNode(chip);\n      range.setStartAfter(chip);\n      range.collapse(true);\n      sel.removeAllRanges();\n      sel.addRange(range);\n    } else {\n      (el.lastElementChild ?? el).appendChild(chip);\n    }\n    this.emit();\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:block}\n    .rte-toolbar{display:flex;flex-wrap:wrap;gap:var(--rhc-space-max-sm);align-items:center;margin-block-end:var(--rhc-space-max-sm)}\n    .rte-toolbar button{min-inline-size:2.2rem}\n    .rte-sep{inline-size:1px;align-self:stretch;background:var(--rhc-color-border-default)}\n    .rte-editable{\n      border:1px solid var(--rhc-color-border-default);border-radius:var(--rhc-border-radius-sm);\n      padding:var(--rhc-space-max-md);min-block-size:4rem;\n    }\n    .rte-editable[contenteditable='false']{background:var(--rhc-color-cool-grey-100)}\n    .rte-editable :is(p){margin:0 0 var(--rhc-space-max-sm)}\n    .rte-editable :is(ul,ol){margin:0 0 var(--rhc-space-max-sm);padding-inline-start:1.4em}\n    /* Placeholder chips read as fill-in fields: auto-resolvable (grey, filled server-side)\n       vs manual (yellow, still needs a value). The read-only preview adds error/warning states.\n       Chips are created imperatively (createChip) inside contenteditable, so they never receive\n       Angular's _ngcontent scoping attribute — ::ng-deep is required or the rules won't match them.\n       Braces use unicode escapes; a literal { in a CSS content string breaks the style parser. */\n    :host ::ng-deep .rte-chip{\n      border:1px dashed var(--rhc-color-border-default);border-radius:var(--rhc-border-radius-sm);\n      padding:0 0.3em;white-space:nowrap;\n    }\n    :host ::ng-deep .rte-chip[data-auto='true']{background:var(--rhc-color-cool-grey-100)}\n    :host ::ng-deep .rte-chip[data-auto='false']{background:var(--rhc-color-geel-100)}\n    :host ::ng-deep .rte-chip::before{content:'\\7B';opacity:0.6;font-weight:700;margin-inline-end:0.1em}\n    :host ::ng-deep .rte-chip::after{content:'\\7D';opacity:0.6;font-weight:700;margin-inline-start:0.1em}\n  \n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 100
            },
            "extends": []
        },
        {
            "name": "ShellComponent",
            "id": "component-ShellComponent-b990b7fab4bacf34c4a1f3390c1b447512fc89ccb1ef24f23aafdf8217d4be1b8f9a6675d2cc3e04aff0f970c18c6fb413dd71e575dbea86c0a6457774564e2b",
            "file": "src/app/shared/layout/shell/shell.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-shell",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:block}\n    .skip{position:absolute;left:var(--app-skip-link-offset);z-index:1030}\n    .skip:focus{left:var(--rhc-space-max-md);top:var(--rhc-space-max-md);background:var(--rhc-color-wit);padding:var(--rhc-space-max-sm) var(--rhc-space-max-md);border-radius:var(--rhc-border-radius-sm)}\n    .layout{display:flex;flex-direction:column;min-block-size:100vh}\n    .main{flex:1;inline-size:100%;box-sizing:border-box}\n    .content{max-inline-size:var(--app-content-max);margin-inline:auto;padding:var(--rhc-space-max-3xl) var(--rhc-space-max-2xl);box-sizing:border-box}\n  "
            ],
            "template": "<a href=\"#main\" class=\"skip\" i18n=\"@@shell.skipLink\">Naar de inhoud</a>\n<div class=\"layout\">\n  <app-site-header />\n  <main id=\"main\" class=\"main\">\n    <div class=\"content\">\n      <router-outlet />\n    </div>\n  </main>\n  <app-site-footer />\n</div>\n@if (isDev) {\n  <app-debug-state />\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "isDev",
                    "defaultValue": "isDevMode()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 37,
                    "modifierKind": [
                        124,
                        148
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "RouterOutlet"
                },
                {
                    "name": "SiteHeaderComponent",
                    "type": "component"
                },
                {
                    "name": "SiteFooterComponent",
                    "type": "component"
                },
                {
                    "name": "DebugStateComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Template: persistent app chrome. Header + footer mount once; only the routed\ncontent inside <router-outlet> changes (and cross-fades — see styles.scss).</p>\n",
            "rawdescription": "\nTemplate: persistent app chrome. Header + footer mount once; only the routed\ncontent inside <router-outlet> changes (and cross-fades — see styles.scss).",
            "type": "component",
            "sourceCode": "import { Component, isDevMode } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { SiteHeaderComponent } from '@shared/layout/site-header/site-header.component';\nimport { SiteFooterComponent } from '@shared/layout/site-footer/site-footer.component';\nimport { DebugStateComponent } from '@shared/ui/debug-state/debug-state.component';\n\n/** Template: persistent app chrome. Header + footer mount once; only the routed\n    content inside <router-outlet> changes (and cross-fades — see styles.scss). */\n@Component({\n  selector: 'app-shell',\n  imports: [RouterOutlet, SiteHeaderComponent, SiteFooterComponent, DebugStateComponent],\n  styles: [`\n    :host{display:block}\n    .skip{position:absolute;left:var(--app-skip-link-offset);z-index:1030}\n    .skip:focus{left:var(--rhc-space-max-md);top:var(--rhc-space-max-md);background:var(--rhc-color-wit);padding:var(--rhc-space-max-sm) var(--rhc-space-max-md);border-radius:var(--rhc-border-radius-sm)}\n    .layout{display:flex;flex-direction:column;min-block-size:100vh}\n    .main{flex:1;inline-size:100%;box-sizing:border-box}\n    .content{max-inline-size:var(--app-content-max);margin-inline:auto;padding:var(--rhc-space-max-3xl) var(--rhc-space-max-2xl);box-sizing:border-box}\n  `],\n  template: `\n    <a href=\"#main\" class=\"skip\" i18n=\"@@shell.skipLink\">Naar de inhoud</a>\n    <div class=\"layout\">\n      <app-site-header />\n      <main id=\"main\" class=\"main\">\n        <div class=\"content\">\n          <router-outlet />\n        </div>\n      </main>\n      <app-site-footer />\n    </div>\n    @if (isDev) {\n      <app-debug-state />\n    }\n  `,\n})\nexport class ShellComponent {\n  protected readonly isDev = isDevMode();\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:block}\n    .skip{position:absolute;left:var(--app-skip-link-offset);z-index:1030}\n    .skip:focus{left:var(--rhc-space-max-md);top:var(--rhc-space-max-md);background:var(--rhc-color-wit);padding:var(--rhc-space-max-sm) var(--rhc-space-max-md);border-radius:var(--rhc-border-radius-sm)}\n    .layout{display:flex;flex-direction:column;min-block-size:100vh}\n    .main{flex:1;inline-size:100%;box-sizing:border-box}\n    .content{max-inline-size:var(--app-content-max);margin-inline:auto;padding:var(--rhc-space-max-3xl) var(--rhc-space-max-2xl);box-sizing:border-box}\n  \n",
            "extends": []
        },
        {
            "name": "SingleUploadComponent",
            "id": "component-SingleUploadComponent-432f76299a1d6d60d3b04597214545fc4e6d5bd59538657435310065fb5d24a177e0ecfee20b7d369aaddcdf58e3209535d51a965eb67dc74a0b990d0f5b4ce6",
            "file": "src/app/shared/ui/upload/single-upload/single-upload.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-single-upload",
            "styleUrls": [],
            "styles": [
                "\n    :host { display: flex; flex-direction: column; gap: var(--rhc-space-max-sm); }\n  "
            ],
            "template": "<app-document-chip\n  [fileName]=\"upload().fileName\"\n  [status]=\"upload().status\"\n  [previewUrl]=\"previewUrl()\"\n  (remove)=\"remove.emit()\"\n  (retry)=\"retry.emit()\" />\n@if (progressPct() !== null) {\n  <app-upload-progress-bar [progressPct]=\"progressPct()!\" />\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "previewUrlFor",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "(documentId: string) => string | undefined",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Builds a preview URL for a completed upload&#39;s documentId (undefined = no link).</p>\n",
                    "line": 29,
                    "rawdescription": "\nBuilds a preview URL for a completed upload's documentId (undefined = no link).",
                    "required": false
                },
                {
                    "name": "upload",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Upload",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 27,
                    "required": true
                }
            ],
            "outputsClass": [
                {
                    "name": "remove",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 42,
                    "required": false
                },
                {
                    "name": "retry",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 43,
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "previewUrl",
                    "defaultValue": "computed<string | undefined>(() => {\n    const status = this.upload().status;\n    return status.type === 'complete' ? this.previewUrlFor()?.(status.documentId) : undefined;\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 37,
                    "modifierKind": [
                        124,
                        148
                    ]
                },
                {
                    "name": "progressPct",
                    "defaultValue": "computed<number | null>(() => {\n    const status = this.upload().status;\n    return status.type === 'uploading' ? status.progressPct : null;\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Narrow the status union once, in TS, so the template stays type-safe.</p>\n",
                    "line": 32,
                    "rawdescription": "\nNarrow the status union once, in TS, so the template stays type-safe.",
                    "modifierKind": [
                        124,
                        148
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "DocumentChipComponent",
                    "type": "component"
                },
                {
                    "name": "UploadProgressBarComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Molecule: one upload row — its chip plus a progress bar while uploading. Pure UI:\nforwards <code>remove</code>/<code>retry</code> from the chip.</p>\n",
            "rawdescription": "\nMolecule: one upload row — its chip plus a progress bar while uploading. Pure UI:\nforwards `remove`/`retry` from the chip.",
            "type": "component",
            "sourceCode": "import { Component, computed, input, output } from '@angular/core';\nimport type { Upload } from '@shared/upload/upload.machine';\nimport { DocumentChipComponent } from '../document-chip/document-chip.component';\nimport { UploadProgressBarComponent } from '../upload-progress-bar/upload-progress-bar.component';\n\n/** Molecule: one upload row — its chip plus a progress bar while uploading. Pure UI:\n    forwards `remove`/`retry` from the chip. */\n@Component({\n  selector: 'app-single-upload',\n  imports: [DocumentChipComponent, UploadProgressBarComponent],\n  styles: [`\n    :host { display: flex; flex-direction: column; gap: var(--rhc-space-max-sm); }\n  `],\n  template: `\n    <app-document-chip\n      [fileName]=\"upload().fileName\"\n      [status]=\"upload().status\"\n      [previewUrl]=\"previewUrl()\"\n      (remove)=\"remove.emit()\"\n      (retry)=\"retry.emit()\" />\n    @if (progressPct() !== null) {\n      <app-upload-progress-bar [progressPct]=\"progressPct()!\" />\n    }\n  `,\n})\nexport class SingleUploadComponent {\n  upload = input.required<Upload>();\n  /** Builds a preview URL for a completed upload's documentId (undefined = no link). */\n  previewUrlFor = input<(documentId: string) => string | undefined>();\n\n  /** Narrow the status union once, in TS, so the template stays type-safe. */\n  protected readonly progressPct = computed<number | null>(() => {\n    const status = this.upload().status;\n    return status.type === 'uploading' ? status.progressPct : null;\n  });\n\n  protected readonly previewUrl = computed<string | undefined>(() => {\n    const status = this.upload().status;\n    return status.type === 'complete' ? this.previewUrlFor()?.(status.documentId) : undefined;\n  });\n\n  remove = output<void>();\n  retry = output<void>();\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host { display: flex; flex-direction: column; gap: var(--rhc-space-max-sm); }\n  \n",
            "extends": []
        },
        {
            "name": "SiteFooterComponent",
            "id": "component-SiteFooterComponent-8f9d12338e50caf6a2f0c68be2d13ff27dc417b6eaf536d7ee429a7ef00bc306287035298b8c7929a29e6f2dfb865b9233bc6669667ac52f12928af935039d6e",
            "file": "src/app/shared/layout/site-footer/site-footer.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-site-footer",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:block}\n    .bar{background:var(--rhc-color-layout);color:var(--rhc-color-foreground-on-primary);margin-block-start:var(--rhc-space-max-5xl);inline-size:100%}\n    .inner{max-inline-size:var(--app-content-max);margin-inline:auto;padding:var(--rhc-space-max-3xl) var(--rhc-space-max-2xl);box-sizing:border-box;display:flex;gap:var(--rhc-space-max-3xl);flex-wrap:wrap;justify-content:space-between}\n    .tagline{font-style:italic;font-weight:var(--rhc-text-font-weight-semi-bold);font-size:var(--rhc-text-font-size-lg);max-inline-size:18rem}\n    .ministry{margin-block-start:var(--rhc-space-max-md);font-size:var(--rhc-text-font-size-sm);color:var(--rhc-color-foreground-on-primary)}\n    /* CIBG's vendored h2 tag rule (dark navy, for light backgrounds) beats inherited\n       color regardless of specificity — restate on-primary explicitly for this dark bar. */\n    .col h2{margin:0 0 var(--rhc-space-max-md);font-size:var(--rhc-text-font-size-sm);font-weight:var(--rhc-text-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--rhc-color-foreground-on-primary)}\n    .links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--rhc-space-max-sm);font-size:var(--rhc-text-font-size-sm)}\n    .links a{color:var(--rhc-color-foreground-on-primary);text-decoration:none}\n    .links a:hover{text-decoration:underline}\n    /* CIBG's vendored .meta class (unrelated component, coincidental name) sets a\n       dark grey — override rather than rename to keep the CIBG-mirroring class name. */\n    .meta{inline-size:100%;border-block-start:var(--rhc-border-width-sm) solid color-mix(in srgb, var(--rhc-color-foreground-on-primary) 25%, transparent);margin-block-start:var(--rhc-space-max-xl);padding-block-start:var(--rhc-space-max-lg);font-size:var(--rhc-text-font-size-sm);opacity:.85;color:var(--rhc-color-foreground-on-primary)}\n  "
            ],
            "template": "<footer class=\"bar\">\n  <div class=\"inner\">\n    <div>\n      <div class=\"tagline\" i18n=\"@@footer.tagline\">De Rijksoverheid. Voor Nederland.</div>\n      <div class=\"ministry\" i18n=\"@@footer.ministry\">CIBG — Ministerie van Volksgezondheid, Welzijn en Sport</div>\n    </div>\n    <nav class=\"col\" i18n-aria-label=\"@@footer.overSiteAria\" aria-label=\"Over deze site\">\n      <h2 i18n=\"@@footer.overSite\">Over deze site</h2>\n      <ul class=\"links\">\n        <li><a href=\"https://www.rijksoverheid.nl/privacy\" rel=\"noopener\" target=\"_blank\" i18n=\"@@footer.privacy\">Privacy</a></li>\n        <li><a href=\"https://www.rijksoverheid.nl/cookies\" rel=\"noopener\" target=\"_blank\" i18n=\"@@footer.cookies\">Cookies</a></li>\n        <li><a href=\"https://www.rijksoverheid.nl/toegankelijkheid\" rel=\"noopener\" target=\"_blank\" i18n=\"@@footer.toegankelijkheid\">Toegankelijkheid</a></li>\n      </ul>\n    </nav>\n    <div class=\"meta\" i18n=\"@@footer.demo\">Demo / POC — geen echte gegevens.</div>\n  </div>\n</footer>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Organism: Rijksoverheid-style site footer — dark-blue, with the\n&quot;De Rijksoverheid. Voor Nederland.&quot; tagline, responsible-ministry attribution,\nand a small &quot;Over deze site&quot; link column. ponytail: links point at the real\nrijksoverheid.nl pages, not a fabricated dead-link forest.</p>\n",
            "rawdescription": "\nOrganism: Rijksoverheid-style site footer — dark-blue, with the\n\"De Rijksoverheid. Voor Nederland.\" tagline, responsible-ministry attribution,\nand a small \"Over deze site\" link column. ponytail: links point at the real\nrijksoverheid.nl pages, not a fabricated dead-link forest.",
            "type": "component",
            "sourceCode": "import { Component } from '@angular/core';\n\n/** Organism: Rijksoverheid-style site footer — dark-blue, with the\n    \"De Rijksoverheid. Voor Nederland.\" tagline, responsible-ministry attribution,\n    and a small \"Over deze site\" link column. ponytail: links point at the real\n    rijksoverheid.nl pages, not a fabricated dead-link forest. */\n@Component({\n  selector: 'app-site-footer',\n  styles: [`\n    :host{display:block}\n    .bar{background:var(--rhc-color-layout);color:var(--rhc-color-foreground-on-primary);margin-block-start:var(--rhc-space-max-5xl);inline-size:100%}\n    .inner{max-inline-size:var(--app-content-max);margin-inline:auto;padding:var(--rhc-space-max-3xl) var(--rhc-space-max-2xl);box-sizing:border-box;display:flex;gap:var(--rhc-space-max-3xl);flex-wrap:wrap;justify-content:space-between}\n    .tagline{font-style:italic;font-weight:var(--rhc-text-font-weight-semi-bold);font-size:var(--rhc-text-font-size-lg);max-inline-size:18rem}\n    .ministry{margin-block-start:var(--rhc-space-max-md);font-size:var(--rhc-text-font-size-sm);color:var(--rhc-color-foreground-on-primary)}\n    /* CIBG's vendored h2 tag rule (dark navy, for light backgrounds) beats inherited\n       color regardless of specificity — restate on-primary explicitly for this dark bar. */\n    .col h2{margin:0 0 var(--rhc-space-max-md);font-size:var(--rhc-text-font-size-sm);font-weight:var(--rhc-text-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--rhc-color-foreground-on-primary)}\n    .links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--rhc-space-max-sm);font-size:var(--rhc-text-font-size-sm)}\n    .links a{color:var(--rhc-color-foreground-on-primary);text-decoration:none}\n    .links a:hover{text-decoration:underline}\n    /* CIBG's vendored .meta class (unrelated component, coincidental name) sets a\n       dark grey — override rather than rename to keep the CIBG-mirroring class name. */\n    .meta{inline-size:100%;border-block-start:var(--rhc-border-width-sm) solid color-mix(in srgb, var(--rhc-color-foreground-on-primary) 25%, transparent);margin-block-start:var(--rhc-space-max-xl);padding-block-start:var(--rhc-space-max-lg);font-size:var(--rhc-text-font-size-sm);opacity:.85;color:var(--rhc-color-foreground-on-primary)}\n  `],\n  template: `\n    <footer class=\"bar\">\n      <div class=\"inner\">\n        <div>\n          <div class=\"tagline\" i18n=\"@@footer.tagline\">De Rijksoverheid. Voor Nederland.</div>\n          <div class=\"ministry\" i18n=\"@@footer.ministry\">CIBG — Ministerie van Volksgezondheid, Welzijn en Sport</div>\n        </div>\n        <nav class=\"col\" i18n-aria-label=\"@@footer.overSiteAria\" aria-label=\"Over deze site\">\n          <h2 i18n=\"@@footer.overSite\">Over deze site</h2>\n          <ul class=\"links\">\n            <li><a href=\"https://www.rijksoverheid.nl/privacy\" rel=\"noopener\" target=\"_blank\" i18n=\"@@footer.privacy\">Privacy</a></li>\n            <li><a href=\"https://www.rijksoverheid.nl/cookies\" rel=\"noopener\" target=\"_blank\" i18n=\"@@footer.cookies\">Cookies</a></li>\n            <li><a href=\"https://www.rijksoverheid.nl/toegankelijkheid\" rel=\"noopener\" target=\"_blank\" i18n=\"@@footer.toegankelijkheid\">Toegankelijkheid</a></li>\n          </ul>\n        </nav>\n        <div class=\"meta\" i18n=\"@@footer.demo\">Demo / POC — geen echte gegevens.</div>\n      </div>\n    </footer>\n  `,\n})\nexport class SiteFooterComponent {}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:block}\n    .bar{background:var(--rhc-color-layout);color:var(--rhc-color-foreground-on-primary);margin-block-start:var(--rhc-space-max-5xl);inline-size:100%}\n    .inner{max-inline-size:var(--app-content-max);margin-inline:auto;padding:var(--rhc-space-max-3xl) var(--rhc-space-max-2xl);box-sizing:border-box;display:flex;gap:var(--rhc-space-max-3xl);flex-wrap:wrap;justify-content:space-between}\n    .tagline{font-style:italic;font-weight:var(--rhc-text-font-weight-semi-bold);font-size:var(--rhc-text-font-size-lg);max-inline-size:18rem}\n    .ministry{margin-block-start:var(--rhc-space-max-md);font-size:var(--rhc-text-font-size-sm);color:var(--rhc-color-foreground-on-primary)}\n    /* CIBG's vendored h2 tag rule (dark navy, for light backgrounds) beats inherited\n       color regardless of specificity — restate on-primary explicitly for this dark bar. */\n    .col h2{margin:0 0 var(--rhc-space-max-md);font-size:var(--rhc-text-font-size-sm);font-weight:var(--rhc-text-font-weight-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--rhc-color-foreground-on-primary)}\n    .links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--rhc-space-max-sm);font-size:var(--rhc-text-font-size-sm)}\n    .links a{color:var(--rhc-color-foreground-on-primary);text-decoration:none}\n    .links a:hover{text-decoration:underline}\n    /* CIBG's vendored .meta class (unrelated component, coincidental name) sets a\n       dark grey — override rather than rename to keep the CIBG-mirroring class name. */\n    .meta{inline-size:100%;border-block-start:var(--rhc-border-width-sm) solid color-mix(in srgb, var(--rhc-color-foreground-on-primary) 25%, transparent);margin-block-start:var(--rhc-space-max-xl);padding-block-start:var(--rhc-space-max-lg);font-size:var(--rhc-text-font-size-sm);opacity:.85;color:var(--rhc-color-foreground-on-primary)}\n  \n",
            "extends": []
        },
        {
            "name": "SiteHeaderComponent",
            "id": "component-SiteHeaderComponent-d54300d0ac696bf6b73475c3fe4a3361abeb7fe500974720d181c345c1522016509451d281951a621c673f50b01b330a5467fe0748789cf5d4a8995bd03c9a95",
            "file": "src/app/shared/layout/site-header/site-header.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-site-header",
            "styleUrls": [],
            "styles": [
                "\n    .logout{background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;font:inherit;color:inherit}\n    /* CIBG's header nav has no bg by default in this build — the grey bar is ours.\n       (.titlebar keeps its own robijn fill — --ro-layout — untouched; the breadcrumb\n       inside it has no background of its own, so the bar's colour shows through.) */\n    nav{background-color:var(--rhc-color-cool-grey-200)}\n  "
            ],
            "template": "<header>\n  <div class=\"logo\">\n    <div class=\"logo__wrapper\">\n      <a routerLink=\"/dashboard\" class=\"logo__link\">\n        <figure class=\"logo__figure\">\n          <figcaption class=\"logo__text\">\n            <span class=\"logo__sender\" i18n=\"@@header.sender\">BIG-register</span>\n            <span class=\"logo__ministry\" i18n=\"@@header.ministry\">Ministerie van Volksgezondheid, Welzijn en Sport</span>\n          </figcaption>\n        </figure>\n      </a>\n    </div>\n  </div>\n  <div class=\"titlebar\">\n    <div class=\"container\">\n      <div class=\"row\">\n        <div class=\"title col-md-7\">\n          @if (trail().length) { <app-breadcrumb [items]=\"trail()\" /> }\n        </div>\n        <div class=\"user-menu col-md-5\">\n          @if (session(); as s) {\n            <div><span class=\"login-name\">{{ s.naam }}</span></div>\n            <div><button type=\"button\" class=\"logout\" (click)=\"logout()\" i18n=\"@@header.uitloggen\">Uitloggen</button></div>\n          }\n        </div>\n      </div>\n    </div>\n  </div>\n  <nav i18n-aria-label=\"@@header.navAria\" aria-label=\"Hoofdnavigatie\">\n    <div class=\"container\">\n      <ul>\n        @for (item of navItems; track item.to) {\n          <li routerLinkActive=\"active\" [routerLinkActiveOptions]=\"{ exact: true }\">\n            <a [routerLink]=\"item.to\">{{ item.label }}</a>\n          </li>\n        }\n      </ul>\n    </div>\n  </nav>\n</header>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "navItems",
                    "defaultValue": "NAV_ITEMS",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 78,
                    "modifierKind": [
                        124,
                        148
                    ]
                },
                {
                    "name": "router",
                    "defaultValue": "inject(Router)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 80,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "session",
                    "defaultValue": "computed(() => this.sessionPort?.session() ?? null)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 83,
                    "modifierKind": [
                        148
                    ]
                },
                {
                    "name": "sessionPort",
                    "defaultValue": "inject(SESSION_PORT, { optional: true })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 81,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "trail",
                    "defaultValue": "computed(() => trailFor(this.url()))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 88,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "url",
                    "defaultValue": "toSignal(\n    this.router.events.pipe(filter((e) => e instanceof NavigationEnd), map(() => this.router.url)),\n    { initialValue: this.router.url },\n  )",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 84,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "logout",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 90,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "RouterLink"
                },
                {
                    "name": "RouterLinkActive"
                },
                {
                    "name": "BreadcrumbComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Organism: CIBG Huisstijl site header — logo block, robijn titlebar (breadcrumb +\nuser menu), horizontal nav. ponytail: text wordmark, not the licensed Rijksoverheid\nbeeldmerk; no search box (no search feature yet).</p>\n",
            "rawdescription": "\nOrganism: CIBG Huisstijl site header — logo block, robijn titlebar (breadcrumb +\nuser menu), horizontal nav. ponytail: text wordmark, not the licensed Rijksoverheid\nbeeldmerk; no search box (no search feature yet).",
            "type": "component",
            "sourceCode": "import { Component, computed, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NavigationEnd, Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport { filter, map } from 'rxjs/operators';\nimport { SESSION_PORT } from '@shared/application/session.port';\nimport { BreadcrumbComponent } from '@shared/layout/breadcrumb/breadcrumb.component';\nimport { trailFor } from '@shared/layout/breadcrumb/breadcrumb-trail';\n\ninterface HeaderNavItem {\n  readonly label: string;\n  readonly to: string;\n}\n\nconst NAV_ITEMS: readonly HeaderNavItem[] = [\n  { label: $localize`:@@header.nav.overzicht:Overzicht`, to: '/dashboard' },\n  { label: $localize`:@@header.nav.gegevens:Mijn gegevens`, to: '/registratie' },\n  { label: $localize`:@@header.nav.herregistratie:Herregistratie`, to: '/herregistratie' },\n  { label: $localize`:@@header.nav.inschrijven:Inschrijven`, to: '/registreren' },\n];\n\n/** Organism: CIBG Huisstijl site header — logo block, robijn titlebar (breadcrumb +\n    user menu), horizontal nav. ponytail: text wordmark, not the licensed Rijksoverheid\n    beeldmerk; no search box (no search feature yet). */\n@Component({\n  selector: 'app-site-header',\n  imports: [RouterLink, RouterLinkActive, BreadcrumbComponent],\n  styles: [`\n    .logout{background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;font:inherit;color:inherit}\n    /* CIBG's header nav has no bg by default in this build — the grey bar is ours.\n       (.titlebar keeps its own robijn fill — --ro-layout — untouched; the breadcrumb\n       inside it has no background of its own, so the bar's colour shows through.) */\n    nav{background-color:var(--rhc-color-cool-grey-200)}\n  `],\n  template: `\n    <header>\n      <div class=\"logo\">\n        <div class=\"logo__wrapper\">\n          <a routerLink=\"/dashboard\" class=\"logo__link\">\n            <figure class=\"logo__figure\">\n              <figcaption class=\"logo__text\">\n                <span class=\"logo__sender\" i18n=\"@@header.sender\">BIG-register</span>\n                <span class=\"logo__ministry\" i18n=\"@@header.ministry\">Ministerie van Volksgezondheid, Welzijn en Sport</span>\n              </figcaption>\n            </figure>\n          </a>\n        </div>\n      </div>\n      <div class=\"titlebar\">\n        <div class=\"container\">\n          <div class=\"row\">\n            <div class=\"title col-md-7\">\n              @if (trail().length) { <app-breadcrumb [items]=\"trail()\" /> }\n            </div>\n            <div class=\"user-menu col-md-5\">\n              @if (session(); as s) {\n                <div><span class=\"login-name\">{{ s.naam }}</span></div>\n                <div><button type=\"button\" class=\"logout\" (click)=\"logout()\" i18n=\"@@header.uitloggen\">Uitloggen</button></div>\n              }\n            </div>\n          </div>\n        </div>\n      </div>\n      <nav i18n-aria-label=\"@@header.navAria\" aria-label=\"Hoofdnavigatie\">\n        <div class=\"container\">\n          <ul>\n            @for (item of navItems; track item.to) {\n              <li routerLinkActive=\"active\" [routerLinkActiveOptions]=\"{ exact: true }\">\n                <a [routerLink]=\"item.to\">{{ item.label }}</a>\n              </li>\n            }\n          </ul>\n        </div>\n      </nav>\n    </header>\n  `,\n})\nexport class SiteHeaderComponent {\n  protected readonly navItems = NAV_ITEMS;\n\n  private router = inject(Router);\n  private sessionPort = inject(SESSION_PORT, { optional: true });\n\n  readonly session = computed(() => this.sessionPort?.session() ?? null);\n  private url = toSignal(\n    this.router.events.pipe(filter((e) => e instanceof NavigationEnd), map(() => this.router.url)),\n    { initialValue: this.router.url },\n  );\n  protected trail = computed(() => trailFor(this.url()));\n\n  logout() {\n    this.sessionPort?.logout();\n    this.router.navigate(['/login']);\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    .logout{background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;font:inherit;color:inherit}\n    /* CIBG's header nav has no bg by default in this build — the grey bar is ours.\n       (.titlebar keeps its own robijn fill — --ro-layout — untouched; the breadcrumb\n       inside it has no background of its own, so the bar's colour shows through.) */\n    nav{background-color:var(--rhc-color-cool-grey-200)}\n  \n",
            "extends": []
        },
        {
            "name": "SkeletonComponent",
            "id": "component-SkeletonComponent-d2768b972782fa90a72f8142960ff79ff9f04fc345e50775c982bcb5f646c5b14d64c013ee0cd03616032c9789e8d6cb3829cee2d296fb2c573d693d0d419fc7",
            "file": "src/app/shared/ui/skeleton/skeleton.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-skeleton",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:block}\n    .sk{background:linear-gradient(90deg,var(--rhc-color-cool-grey-200) 25%,var(--rhc-color-cool-grey-100) 37%,var(--rhc-color-cool-grey-200) 63%);\n        background-size:400% 100%;animation:sh 1.4s ease infinite;border-radius:var(--rhc-border-radius-md);\n        margin-block-end:var(--rhc-space-max-lg)}\n    @keyframes sh{0%{background-position:100% 0}100%{background-position:0 0}}\n  "
            ],
            "template": "@if (visible()) {\n  @for (l of lines(); track $index) {\n    <div class=\"sk\" aria-hidden=\"true\" [style.width]=\"width()\" [style.height]=\"height()\"></div>\n  }\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "count",
                    "defaultValue": "1",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 25,
                    "required": false
                },
                {
                    "name": "delay",
                    "defaultValue": "150",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 26,
                    "required": false
                },
                {
                    "name": "height",
                    "defaultValue": "'1rem'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 24,
                    "required": false
                },
                {
                    "name": "width",
                    "defaultValue": "'100%'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 23,
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "lines",
                    "defaultValue": "computed(() => Array(this.count()).fill(0))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 28,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "timer",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ReturnType<unknown>",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 29,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "visible",
                    "defaultValue": "signal(false)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 27,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "ngOnDestroy",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 32,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 31,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Atom: skeleton placeholder (grey shimmer). Delay-gated so it never flashes\non fast responses. Render <code>count</code> lines shaped roughly like the content.</p>\n",
            "rawdescription": "\nAtom: skeleton placeholder (grey shimmer). Delay-gated so it never flashes\non fast responses. Render `count` lines shaped roughly like the content.",
            "type": "component",
            "sourceCode": "import { Component, OnDestroy, OnInit, computed, input, signal } from '@angular/core';\n\n/** Atom: skeleton placeholder (grey shimmer). Delay-gated so it never flashes\n    on fast responses. Render `count` lines shaped roughly like the content. */\n@Component({\n  selector: 'app-skeleton',\n  styles: [`\n    :host{display:block}\n    .sk{background:linear-gradient(90deg,var(--rhc-color-cool-grey-200) 25%,var(--rhc-color-cool-grey-100) 37%,var(--rhc-color-cool-grey-200) 63%);\n        background-size:400% 100%;animation:sh 1.4s ease infinite;border-radius:var(--rhc-border-radius-md);\n        margin-block-end:var(--rhc-space-max-lg)}\n    @keyframes sh{0%{background-position:100% 0}100%{background-position:0 0}}\n  `],\n  template: `\n    @if (visible()) {\n      @for (l of lines(); track $index) {\n        <div class=\"sk\" aria-hidden=\"true\" [style.width]=\"width()\" [style.height]=\"height()\"></div>\n      }\n    }\n  `,\n})\nexport class SkeletonComponent implements OnInit, OnDestroy {\n  width = input('100%');\n  height = input('1rem');\n  count = input(1);\n  delay = input(150);\n  protected visible = signal(false);\n  protected lines = computed(() => Array(this.count()).fill(0));\n  private timer?: ReturnType<typeof setTimeout>;\n\n  ngOnInit() { this.timer = setTimeout(() => this.visible.set(true), this.delay()); }\n  ngOnDestroy() { clearTimeout(this.timer); }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:block}\n    .sk{background:linear-gradient(90deg,var(--rhc-color-cool-grey-200) 25%,var(--rhc-color-cool-grey-100) 37%,var(--rhc-color-cool-grey-200) 63%);\n        background-size:400% 100%;animation:sh 1.4s ease infinite;border-radius:var(--rhc-border-radius-md);\n        margin-block-end:var(--rhc-space-max-lg)}\n    @keyframes sh{0%{background-position:100% 0}100%{background-position:0 0}}\n  \n",
            "extends": [],
            "implements": [
                "OnInit",
                "OnDestroy"
            ]
        },
        {
            "name": "SpinnerComponent",
            "id": "component-SpinnerComponent-8d0c8af4a5bb0383f4ea3446e6e05c6c5f82642ff439a6fc7344372cf065e6808f080d311c669647e9f7cf7ecbe499b7b59804eda2389dcc31696fe5e603699f",
            "file": "src/app/shared/ui/spinner/spinner.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-spinner",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:block}\n    .sp{inline-size:var(--rhc-space-max-3xl);block-size:var(--rhc-space-max-3xl);border-radius:var(--rhc-border-radius-round);\n        border:var(--rhc-space-max-xs) solid var(--rhc-color-cool-grey-300);\n        border-block-start-color:var(--rhc-color-lintblauw-700);\n        animation:sp 0.8s linear infinite;margin:var(--rhc-space-max-2xl) auto}\n    @keyframes sp{to{transform:rotate(360deg)}}\n  "
            ],
            "template": "@if (visible()) {\n  <div class=\"sp\" role=\"status\" i18n-aria-label=\"@@spinner.aria\" aria-label=\"Bezig met laden\"></div>\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "delay",
                    "defaultValue": "250",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22,
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "timer",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ReturnType<unknown>",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 24,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "visible",
                    "defaultValue": "signal(false)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 23,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "ngOnDestroy",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 27,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 26,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Atom: spinner that only appears after <code>delay</code> ms — fast responses never\nflash a spinner, slow ones get feedback.</p>\n",
            "rawdescription": "\nAtom: spinner that only appears after `delay` ms — fast responses never\nflash a spinner, slow ones get feedback.",
            "type": "component",
            "sourceCode": "import { Component, OnDestroy, OnInit, input, signal } from '@angular/core';\n\n/** Atom: spinner that only appears after `delay` ms — fast responses never\n    flash a spinner, slow ones get feedback. */\n@Component({\n  selector: 'app-spinner',\n  styles: [`\n    :host{display:block}\n    .sp{inline-size:var(--rhc-space-max-3xl);block-size:var(--rhc-space-max-3xl);border-radius:var(--rhc-border-radius-round);\n        border:var(--rhc-space-max-xs) solid var(--rhc-color-cool-grey-300);\n        border-block-start-color:var(--rhc-color-lintblauw-700);\n        animation:sp 0.8s linear infinite;margin:var(--rhc-space-max-2xl) auto}\n    @keyframes sp{to{transform:rotate(360deg)}}\n  `],\n  template: `\n    @if (visible()) {\n      <div class=\"sp\" role=\"status\" i18n-aria-label=\"@@spinner.aria\" aria-label=\"Bezig met laden\"></div>\n    }\n  `,\n})\nexport class SpinnerComponent implements OnInit, OnDestroy {\n  delay = input(250);\n  protected visible = signal(false);\n  private timer?: ReturnType<typeof setTimeout>;\n\n  ngOnInit() { this.timer = setTimeout(() => this.visible.set(true), this.delay()); }\n  ngOnDestroy() { clearTimeout(this.timer); }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:block}\n    .sp{inline-size:var(--rhc-space-max-3xl);block-size:var(--rhc-space-max-3xl);border-radius:var(--rhc-border-radius-round);\n        border:var(--rhc-space-max-xs) solid var(--rhc-color-cool-grey-300);\n        border-block-start-color:var(--rhc-color-lintblauw-700);\n        animation:sp 0.8s linear infinite;margin:var(--rhc-space-max-2xl) auto}\n    @keyframes sp{to{transform:rotate(360deg)}}\n  \n",
            "extends": [],
            "implements": [
                "OnInit",
                "OnDestroy"
            ]
        },
        {
            "name": "StatusBadgeComponent",
            "id": "component-StatusBadgeComponent-0e239b1334c8fe1eae2fe03d34b5a38e7adde3877cf7ffa278a6932e437297f43ae70d1033039271c00a17af8aabca3e65a4acde4cb00d6a6391f348fed7efd8",
            "file": "src/app/shared/ui/status-badge/status-badge.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-status-badge",
            "styleUrls": [],
            "styles": [
                "\n    .status-badge{display:inline-flex;align-items:center;gap:var(--rhc-space-max-md)}\n    .dot{inline-size:0.75rem;block-size:0.75rem;border-radius:var(--rhc-border-radius-round);flex:none}\n  "
            ],
            "template": "<span class=\"status-badge\">\n  <span class=\"dot\" [style.background-color]=\"color()\" aria-hidden=\"true\"></span>\n  <span>{{ label() }}</span>\n</span>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "color",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22,
                    "required": true
                },
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 21,
                    "required": true
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Atom: a coloured dot + label. Purely presentational and domain-free — the\ncaller decides what colour and label mean (e.g. via registration.policy).\nThis keeps the shared UI kernel free of any domain knowledge.</p>\n",
            "rawdescription": "\nAtom: a coloured dot + label. Purely presentational and domain-free — the\ncaller decides what colour and label mean (e.g. via registration.policy).\nThis keeps the shared UI kernel free of any domain knowledge.",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\n\n/** Atom: a coloured dot + label. Purely presentational and domain-free — the\n    caller decides what colour and label mean (e.g. via registration.policy).\n    This keeps the shared UI kernel free of any domain knowledge. */\n@Component({\n  selector: 'app-status-badge',\n  // Local class is NOT Bootstrap's .badge (which would add pill padding/colour) — hence .status-badge.\n  styles: [`\n    .status-badge{display:inline-flex;align-items:center;gap:var(--rhc-space-max-md)}\n    .dot{inline-size:0.75rem;block-size:0.75rem;border-radius:var(--rhc-border-radius-round);flex:none}\n  `],\n  template: `\n    <span class=\"status-badge\">\n      <span class=\"dot\" [style.background-color]=\"color()\" aria-hidden=\"true\"></span>\n      <span>{{ label() }}</span>\n    </span>\n  `,\n})\nexport class StatusBadgeComponent {\n  label = input.required<string>();\n  color = input.required<string>();\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    .status-badge{display:inline-flex;align-items:center;gap:var(--rhc-space-max-md)}\n    .dot{inline-size:0.75rem;block-size:0.75rem;border-radius:var(--rhc-border-radius-round);flex:none}\n  \n",
            "extends": []
        },
        {
            "name": "StepperComponent",
            "id": "component-StepperComponent-cd797dc776973f003d24a707cfe98b93362f40e8a69fc426ae10f941de91f07281769948ff092fa097452ab3ccc96896dd5aac14fa2125702adca7ba3e032e32",
            "file": "src/app/shared/ui/stepper/stepper.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-stepper",
            "styleUrls": [],
            "styles": [],
            "template": "<div class=\"stepper\">\n  <ol class=\"step-list order-1\">\n    @for (label of steps(); track label; let i = $index) {\n      <li>\n        @if (i < current()) {\n          <a href=\"#\" class=\"step visited\" (click)=\"select($event, i)\" [attr.aria-label]=\"terugNaar(i, label)\">\n            <span class=\"visually-hidden\" i18n=\"@@stepper.stap\">Stap</span> {{ i + 1 }}\n            <span class=\"visually-hidden\" i18n=\"@@stepper.voltooid\">Voltooid</span>\n          </a>\n        } @else if (i === current()) {\n          <span class=\"step active\" aria-current=\"step\" [attr.aria-label]=\"huidigeStap(i, label)\">\n            <span class=\"visually-hidden\" i18n=\"@@stepper.stap\">Stap</span> {{ i + 1 }}\n            <span class=\"visually-hidden\" i18n=\"@@stepper.huidig\">Huidige stap</span>\n          </span>\n        } @else {\n          <span class=\"step\" [attr.aria-label]=\"stap(i, label)\">\n            <span class=\"visually-hidden\" i18n=\"@@stepper.stap\">Stap</span> {{ i + 1 }}\n          </span>\n        }\n      </li>\n    }\n  </ol>\n  <h2 #title tabindex=\"-1\" class=\"h1 order-0\">\n    @if (processName()) { <span class=\"process-name\">{{ processName() }}</span> }\n    <ng-container i18n=\"@@stepper.stapVan\">Stap {{ current() + 1 }}<span class=\"visually-hidden\"> van {{ steps().length }}</span>: {{ stepTitle() || steps()[current()] }}</ng-container>\n  </h2>\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "current",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 41,
                    "required": true
                },
                {
                    "name": "processName",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Name of the overall process, shown above the step title (e.g. &quot;Herregistratie aanvragen&quot;).</p>\n",
                    "line": 43,
                    "rawdescription": "\nName of the overall process, shown above the step title (e.g. \"Herregistratie aanvragen\").",
                    "required": false
                },
                {
                    "name": "steps",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 40,
                    "required": true
                },
                {
                    "name": "stepTitle",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Overrides the step label as the title; falls back to <code>steps()[current()]</code>.</p>\n",
                    "line": 45,
                    "rawdescription": "\nOverrides the step label as the title; falls back to `steps()[current()]`.",
                    "required": false
                }
            ],
            "outputsClass": [
                {
                    "name": "stepSelected",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Emitted when a visited (earlier) step is clicked — back-navigation only.</p>\n",
                    "line": 48,
                    "rawdescription": "\nEmitted when a visited (earlier) step is clicked — back-navigation only.",
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "titleEl",
                    "defaultValue": "viewChild<ElementRef<HTMLElement>>('title')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 50,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "focusTitle",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 53,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nwizard-shell calls this after a step change so the new title is announced.",
                    "description": "<p>wizard-shell calls this after a step change so the new title is announced.</p>\n"
                },
                {
                    "name": "huidigeStap",
                    "args": [
                        {
                            "name": "i",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "label",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 65,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "i",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "label",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "select",
                    "args": [
                        {
                            "name": "ev",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "i",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 57,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "ev",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "i",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "stap",
                    "args": [
                        {
                            "name": "i",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "label",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 62,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "i",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "label",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "terugNaar",
                    "args": [
                        {
                            "name": "i",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "label",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 68,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "i",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "label",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Molecule: the CIBG Huisstijl &quot;stappenindicator&quot; — numbered circles (<code>.step-list</code>),\nvisited steps clickable for back-only navigation, and the step title merged into\nthe same block (process name + &quot;Stap X van Y: Titel&quot;, per the aanvraagproces\npattern). Domain-free; forward navigation only via the wizard&#39;s own buttons.</p>\n",
            "rawdescription": "\nMolecule: the CIBG Huisstijl \"stappenindicator\" — numbered circles (`.step-list`),\nvisited steps clickable for back-only navigation, and the step title merged into\nthe same block (process name + \"Stap X van Y: Titel\", per the aanvraagproces\npattern). Domain-free; forward navigation only via the wizard's own buttons.",
            "type": "component",
            "sourceCode": "import { Component, ElementRef, input, output, viewChild } from '@angular/core';\n\n/** Molecule: the CIBG Huisstijl \"stappenindicator\" — numbered circles (`.step-list`),\n    visited steps clickable for back-only navigation, and the step title merged into\n    the same block (process name + \"Stap X van Y: Titel\", per the aanvraagproces\n    pattern). Domain-free; forward navigation only via the wizard's own buttons. */\n@Component({\n  selector: 'app-stepper',\n  template: `\n    <div class=\"stepper\">\n      <ol class=\"step-list order-1\">\n        @for (label of steps(); track label; let i = $index) {\n          <li>\n            @if (i < current()) {\n              <a href=\"#\" class=\"step visited\" (click)=\"select($event, i)\" [attr.aria-label]=\"terugNaar(i, label)\">\n                <span class=\"visually-hidden\" i18n=\"@@stepper.stap\">Stap</span> {{ i + 1 }}\n                <span class=\"visually-hidden\" i18n=\"@@stepper.voltooid\">Voltooid</span>\n              </a>\n            } @else if (i === current()) {\n              <span class=\"step active\" aria-current=\"step\" [attr.aria-label]=\"huidigeStap(i, label)\">\n                <span class=\"visually-hidden\" i18n=\"@@stepper.stap\">Stap</span> {{ i + 1 }}\n                <span class=\"visually-hidden\" i18n=\"@@stepper.huidig\">Huidige stap</span>\n              </span>\n            } @else {\n              <span class=\"step\" [attr.aria-label]=\"stap(i, label)\">\n                <span class=\"visually-hidden\" i18n=\"@@stepper.stap\">Stap</span> {{ i + 1 }}\n              </span>\n            }\n          </li>\n        }\n      </ol>\n      <h2 #title tabindex=\"-1\" class=\"h1 order-0\">\n        @if (processName()) { <span class=\"process-name\">{{ processName() }}</span> }\n        <ng-container i18n=\"@@stepper.stapVan\">Stap {{ current() + 1 }}<span class=\"visually-hidden\"> van {{ steps().length }}</span>: {{ stepTitle() || steps()[current()] }}</ng-container>\n      </h2>\n    </div>\n  `,\n})\nexport class StepperComponent {\n  steps = input.required<string[]>();\n  current = input.required<number>();\n  /** Name of the overall process, shown above the step title (e.g. \"Herregistratie aanvragen\"). */\n  processName = input('');\n  /** Overrides the step label as the title; falls back to `steps()[current()]`. */\n  stepTitle = input('');\n\n  /** Emitted when a visited (earlier) step is clicked — back-navigation only. */\n  stepSelected = output<number>();\n\n  private titleEl = viewChild<ElementRef<HTMLElement>>('title');\n\n  /** wizard-shell calls this after a step change so the new title is announced. */\n  focusTitle(): void {\n    this.titleEl()?.nativeElement.focus();\n  }\n\n  protected select(ev: Event, i: number) {\n    ev.preventDefault(); // fragment href resolves against <base href>, not the route\n    this.stepSelected.emit(i);\n  }\n\n  protected stap(i: number, label: string) {\n    return $localize`:@@stepper.naarStap:Stap ${i + 1}:nummer: ${label}:label:`;\n  }\n  protected huidigeStap(i: number, label: string) {\n    return $localize`:@@stepper.huidigeStapLabel:Huidige stap, stap ${i + 1}:nummer: ${label}:label:`;\n  }\n  protected terugNaar(i: number, label: string) {\n    return $localize`:@@stepper.terugNaarStap:Terug naar stap ${i + 1}:nummer: ${label}:label:`;\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "TaskListComponent",
            "id": "component-TaskListComponent-4fb24202833aea5820947773c19b1f6e6bb7eef7916dd8ba1fbdb2045528251598341c50fd24d2f15600992e5eb6051fbb4beb891e240bdb83b36f9e972f9d0a",
            "file": "src/app/shared/ui/task-list/task-list.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-task-list",
            "styleUrls": [],
            "styles": [],
            "template": "<app-choice-list [heading]=\"listHeading()\">\n  @for (t of tasks(); track t.title) {\n    <app-choice-link [heading]=\"t.title\" [instructions]=\"t.description\" [to]=\"t.to\" />\n  }\n</app-choice-list>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "listHeading",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 31,
                    "required": true
                },
                {
                    "name": "tasks",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "readonly TaskItem[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 32,
                    "required": true
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "ChoiceListComponent",
                    "type": "component"
                },
                {
                    "name": "ChoiceLinkComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Molecule: the &quot;Wat moet ik regelen&quot; action list (NL Design System &quot;Mijn\nomgeving&quot; pattern), rendered as a CIBG Huisstijl &quot;keuzelijst&quot; — each task is a\nchoice the user picks to resolve it. <code>actionLabel</code> has no keuzelijst equivalent\n(the whole row is the action; the chevron already implies &quot;ga verder&quot;).</p>\n",
            "rawdescription": "\nMolecule: the \"Wat moet ik regelen\" action list (NL Design System \"Mijn\nomgeving\" pattern), rendered as a CIBG Huisstijl \"keuzelijst\" — each task is a\nchoice the user picks to resolve it. `actionLabel` has no keuzelijst equivalent\n(the whole row is the action; the chevron already implies \"ga verder\").",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\nimport { ChoiceListComponent } from '@shared/ui/choice-list/choice-list.component';\nimport { ChoiceLinkComponent } from '@shared/ui/choice-link/choice-link.component';\n\n/** Presentational task shape — what \"Wat moet ik regelen\" renders. Domain-free so\n    shared/ stays independent of any context (a context's task type that has these\n    fields is structurally assignable). */\nexport interface TaskItem {\n  readonly title: string;\n  readonly description: string;\n  readonly to: string;\n  readonly actionLabel: string;\n}\n\n/** Molecule: the \"Wat moet ik regelen\" action list (NL Design System \"Mijn\n    omgeving\" pattern), rendered as a CIBG Huisstijl \"keuzelijst\" — each task is a\n    choice the user picks to resolve it. `actionLabel` has no keuzelijst equivalent\n    (the whole row is the action; the chevron already implies \"ga verder\"). */\n@Component({\n  selector: 'app-task-list',\n  imports: [ChoiceListComponent, ChoiceLinkComponent],\n  template: `\n    <app-choice-list [heading]=\"listHeading()\">\n      @for (t of tasks(); track t.title) {\n        <app-choice-link [heading]=\"t.title\" [instructions]=\"t.description\" [to]=\"t.to\" />\n      }\n    </app-choice-list>\n  `,\n})\nexport class TaskListComponent {\n  listHeading = input.required<string>();\n  tasks = input.required<readonly TaskItem[]>();\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "TextInputComponent",
            "id": "component-TextInputComponent-5eeeb5759eb5afa232bc32310cef61a4fac8b1ca62b7d5415f4582b85f2770c6aeca1cded6c5475f0f9113ff210c6c390ca19d0a98fbc76eac5d27c0fb2e6dbf",
            "file": "src/app/shared/ui/text-input/text-input.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [
                {
                    "name": ")"
                }
            ],
            "selector": "app-text-input",
            "styleUrls": [],
            "styles": [
                "\n    :host{display:block}\n    input{inline-size:100%;box-sizing:border-box}\n  "
            ],
            "template": "<input\n  class=\"form-control\"\n  [class.is-invalid]=\"invalid()\"\n  [type]=\"type()\"\n  [id]=\"inputId()\"\n  [attr.aria-invalid]=\"invalid() ? 'true' : null\"\n  [attr.aria-describedby]=\"invalid() && inputId() ? inputId() + '-error' : null\"\n  [placeholder]=\"placeholder()\"\n  [disabled]=\"disabled\"\n  [value]=\"value\"\n  (input)=\"onInput($event)\"\n  (blur)=\"onTouched()\" />\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "inputId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 31,
                    "required": false
                },
                {
                    "name": "invalid",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 30,
                    "required": false
                },
                {
                    "name": "placeholder",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 29,
                    "required": false
                },
                {
                    "name": "type",
                    "defaultValue": "'text'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "\"text\" | \"password\" | \"email\"",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 28,
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "disabled",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 34
                },
                {
                    "name": "onChange",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 35
                },
                {
                    "name": "onTouched",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 36
                },
                {
                    "name": "value",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 33
                }
            ],
            "methodsClass": [
                {
                    "name": "onInput",
                    "args": [
                        {
                            "name": "e",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 38,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "e",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "registerOnChange",
                    "args": [
                        {
                            "name": "fn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "v",
                                    "type": "string",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ]
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 43,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "fn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "v",
                                    "type": "string",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "registerOnTouched",
                    "args": [
                        {
                            "name": "fn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": []
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 44,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "fn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setDisabledState",
                    "args": [
                        {
                            "name": "d",
                            "type": "boolean",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 45,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "d",
                            "type": "boolean",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "writeValue",
                    "args": [
                        {
                            "name": "v",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 42,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "v",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Atom: text input. Utrecht textbox wired up as a form control (ngModel/reactive).</p>\n",
            "rawdescription": "\nAtom: text input. Utrecht textbox wired up as a form control (ngModel/reactive).",
            "type": "component",
            "sourceCode": "import { Component, forwardRef, input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/** Atom: text input. Utrecht textbox wired up as a form control (ngModel/reactive). */\n@Component({\n  selector: 'app-text-input',\n  styles: [`\n    :host{display:block}\n    input{inline-size:100%;box-sizing:border-box}\n  `],\n  template: `\n    <input\n      class=\"form-control\"\n      [class.is-invalid]=\"invalid()\"\n      [type]=\"type()\"\n      [id]=\"inputId()\"\n      [attr.aria-invalid]=\"invalid() ? 'true' : null\"\n      [attr.aria-describedby]=\"invalid() && inputId() ? inputId() + '-error' : null\"\n      [placeholder]=\"placeholder()\"\n      [disabled]=\"disabled\"\n      [value]=\"value\"\n      (input)=\"onInput($event)\"\n      (blur)=\"onTouched()\" />\n  `,\n  providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TextInputComponent), multi: true }],\n})\nexport class TextInputComponent implements ControlValueAccessor {\n  type = input<'text' | 'password' | 'email'>('text');\n  placeholder = input('');\n  invalid = input(false);\n  inputId = input<string>();\n\n  value = '';\n  disabled = false;\n  onChange: (v: string) => void = () => {};\n  onTouched: () => void = () => {};\n\n  onInput(e: Event) {\n    this.value = (e.target as HTMLInputElement).value;\n    this.onChange(this.value);\n  }\n  writeValue(v: string) { this.value = v ?? ''; }\n  registerOnChange(fn: (v: string) => void) { this.onChange = fn; }\n  registerOnTouched(fn: () => void) { this.onTouched = fn; }\n  setDisabledState(d: boolean) { this.disabled = d; }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host{display:block}\n    input{inline-size:100%;box-sizing:border-box}\n  \n",
            "extends": [],
            "implements": [
                "ControlValueAccessor"
            ]
        },
        {
            "name": "UploadProgressBarComponent",
            "id": "component-UploadProgressBarComponent-c7954b5fe8ca64e3554479c2677f523b46486b0b6ac132beef94a068b90b0e3647a74fe452cb3152a121b546b2a3dd5ea8fadd9ffcdbcaef039c826ac98fb0e6",
            "file": "src/app/shared/ui/upload/upload-progress-bar/upload-progress-bar.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-upload-progress-bar",
            "styleUrls": [],
            "styles": [
                "\n    :host { display: flex; align-items: center; gap: var(--rhc-space-max-md); }\n    progress { flex: 1; height: var(--rhc-space-max-md); }\n    .pct { font-size: var(--rhc-text-font-size-sm); color: var(--rhc-color-foreground-subtle); min-width: 3ch; text-align: end; }\n  "
            ],
            "template": "<progress\n  max=\"100\"\n  [value]=\"progressPct()\"\n  [attr.aria-label]=\"progressLabel\"></progress>\n<span class=\"pct\">{{ progressPct() }}%</span>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "progressPct",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 21,
                    "required": true
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "progressLabel",
                    "defaultValue": "$localize`:@@upload.progress.label:Uploadvoortgang`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 23,
                    "modifierKind": [
                        124,
                        148
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Atom: native progress bar for an in-flight upload. Pure UI — the caller supplies\nthe percentage.</p>\n",
            "rawdescription": "\nAtom: native progress bar for an in-flight upload. Pure UI — the caller supplies\nthe percentage.",
            "type": "component",
            "sourceCode": "import { Component, input } from '@angular/core';\n\n/** Atom: native progress bar for an in-flight upload. Pure UI — the caller supplies\n    the percentage. */\n@Component({\n  selector: 'app-upload-progress-bar',\n  styles: [`\n    :host { display: flex; align-items: center; gap: var(--rhc-space-max-md); }\n    progress { flex: 1; height: var(--rhc-space-max-md); }\n    .pct { font-size: var(--rhc-text-font-size-sm); color: var(--rhc-color-foreground-subtle); min-width: 3ch; text-align: end; }\n  `],\n  template: `\n    <progress\n      max=\"100\"\n      [value]=\"progressPct()\"\n      [attr.aria-label]=\"progressLabel\"></progress>\n    <span class=\"pct\">{{ progressPct() }}%</span>\n  `,\n})\nexport class UploadProgressBarComponent {\n  progressPct = input.required<number>();\n\n  protected readonly progressLabel = $localize`:@@upload.progress.label:Uploadvoortgang`;\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    :host { display: flex; align-items: center; gap: var(--rhc-space-max-md); }\n    progress { flex: 1; height: var(--rhc-space-max-md); }\n    .pct { font-size: var(--rhc-text-font-size-sm); color: var(--rhc-color-foreground-subtle); min-width: 3ch; text-align: end; }\n  \n",
            "extends": []
        },
        {
            "name": "UploadStatusBannerComponent",
            "id": "component-UploadStatusBannerComponent-bd43a8ab3e3102bf27f08c6969f36192f05089712c019bd99cb63bfd83c158174c8a9e71d9c48550de2ead19eb78bfaa2c49baa85be1880adb487129f632174c",
            "file": "src/app/shared/ui/upload/upload-status-banner/upload-status-banner.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-upload-status-banner",
            "styleUrls": [],
            "styles": [],
            "template": "<div aria-live=\"polite\">\n  <app-alert [type]=\"alertType()\">{{ message() }}</app-alert>\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "message",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 19,
                    "required": true
                },
                {
                    "name": "type",
                    "defaultValue": "'info'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "BannerType",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 20,
                    "required": false
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "alertType",
                    "defaultValue": "computed<AlertType>(() => (this.type() === 'info' ? 'info' : this.type()))",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22,
                    "modifierKind": [
                        124,
                        148
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "AlertComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Molecule: a polite, announced status banner. Wraps the alert atom and maps the\nbanner type to an alert type. Pure UI: the container computes the message.</p>\n",
            "rawdescription": "\nMolecule: a polite, announced status banner. Wraps the alert atom and maps the\nbanner type to an alert type. Pure UI: the container computes the message.",
            "type": "component",
            "sourceCode": "import { Component, computed, input } from '@angular/core';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\n\ntype BannerType = 'info' | 'warning' | 'error';\ntype AlertType = 'info' | 'ok' | 'warning' | 'error';\n\n/** Molecule: a polite, announced status banner. Wraps the alert atom and maps the\n    banner type to an alert type. Pure UI: the container computes the message. */\n@Component({\n  selector: 'app-upload-status-banner',\n  imports: [AlertComponent],\n  template: `\n    <div aria-live=\"polite\">\n      <app-alert [type]=\"alertType()\">{{ message() }}</app-alert>\n    </div>\n  `,\n})\nexport class UploadStatusBannerComponent {\n  message = input.required<string>();\n  type = input<BannerType>('info');\n\n  protected readonly alertType = computed<AlertType>(() => (this.type() === 'info' ? 'info' : this.type()));\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "",
            "extends": []
        },
        {
            "name": "UploadStatusIconComponent",
            "id": "component-UploadStatusIconComponent-bc824192fb4b5b1e5ca46093e18a138c2c643d35be29ea257636d0b96b1867c3aa6d37f84437e9315f4e8157cdd99351b9bb1fe0f58adadd7cafca9c69d46185",
            "file": "src/app/shared/ui/upload/upload-status-icon/upload-status-icon.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-upload-status-icon",
            "styleUrls": [],
            "styles": [
                "\n    .glyph { font-weight: var(--rhc-text-font-weight-semi-bold); }\n  "
            ],
            "template": "@if (glyph()) {\n  <span class=\"glyph\" [style.color]=\"glyph()!.color\" [attr.aria-label]=\"glyph()!.label\" role=\"img\">\n    {{ glyph()!.char }}\n  </span>\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UploadStatus['type']",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 26,
                    "required": true
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "glyph",
                    "defaultValue": "computed<Glyph | null>(() => {\n    switch (this.status()) {\n      case 'queued':\n        return { char: '…', label: $localize`:@@upload.status.queued:In wachtrij`, color: 'var(--rhc-color-foreground-subtle)' };\n      case 'uploading':\n        return { char: '↑', label: $localize`:@@upload.status.uploading:Bezig met uploaden`, color: 'var(--rhc-color-lintblauw-600)' };\n      case 'complete':\n        return { char: '✓', label: $localize`:@@upload.status.complete:Geüpload`, color: 'var(--rhc-color-groen-500)' };\n      case 'failed':\n        return { char: '✕', label: $localize`:@@upload.status.failed:Mislukt`, color: 'var(--rhc-color-rood-500)' };\n      case 'deleting':\n        return { char: '⟳', label: $localize`:@@upload.status.deleting:Bezig met verwijderen`, color: 'var(--rhc-color-foreground-subtle)' };\n      case 'idle':\n      case 'deleted':\n        return null;\n    }\n  })",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 28,
                    "modifierKind": [
                        124,
                        148
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "<p>Atom: a small status glyph for one upload. Pure UI — glyph, colour and a11y\nlabel derive purely from the status type.</p>\n",
            "rawdescription": "\nAtom: a small status glyph for one upload. Pure UI — glyph, colour and a11y\nlabel derive purely from the status type.",
            "type": "component",
            "sourceCode": "import { Component, computed, input } from '@angular/core';\nimport type { UploadStatus } from '@shared/upload/upload.machine';\n\ninterface Glyph {\n  char: string;\n  label: string;\n  color: string;\n}\n\n/** Atom: a small status glyph for one upload. Pure UI — glyph, colour and a11y\n    label derive purely from the status type. */\n@Component({\n  selector: 'app-upload-status-icon',\n  styles: [`\n    .glyph { font-weight: var(--rhc-text-font-weight-semi-bold); }\n  `],\n  template: `\n    @if (glyph()) {\n      <span class=\"glyph\" [style.color]=\"glyph()!.color\" [attr.aria-label]=\"glyph()!.label\" role=\"img\">\n        {{ glyph()!.char }}\n      </span>\n    }\n  `,\n})\nexport class UploadStatusIconComponent {\n  status = input.required<UploadStatus['type']>();\n\n  protected readonly glyph = computed<Glyph | null>(() => {\n    switch (this.status()) {\n      case 'queued':\n        return { char: '…', label: $localize`:@@upload.status.queued:In wachtrij`, color: 'var(--rhc-color-foreground-subtle)' };\n      case 'uploading':\n        return { char: '↑', label: $localize`:@@upload.status.uploading:Bezig met uploaden`, color: 'var(--rhc-color-lintblauw-600)' };\n      case 'complete':\n        return { char: '✓', label: $localize`:@@upload.status.complete:Geüpload`, color: 'var(--rhc-color-groen-500)' };\n      case 'failed':\n        return { char: '✕', label: $localize`:@@upload.status.failed:Mislukt`, color: 'var(--rhc-color-rood-500)' };\n      case 'deleting':\n        return { char: '⟳', label: $localize`:@@upload.status.deleting:Bezig met verwijderen`, color: 'var(--rhc-color-foreground-subtle)' };\n      case 'idle':\n      case 'deleted':\n        return null;\n    }\n  });\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    .glyph { font-weight: var(--rhc-text-font-weight-semi-bold); }\n  \n",
            "extends": []
        },
        {
            "name": "WizardShellComponent",
            "id": "component-WizardShellComponent-c062793e6e171bbdf865e41ff4821985a6d914223cb984929df0817df0b0e2e938a0544e400217c743c52ecb4276a8b77dd95e8b8d56367ad90367f530f4e027",
            "file": "src/app/shared/layout/wizard-shell/wizard-shell.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "app-wizard-shell",
            "styleUrls": [],
            "styles": [
                "\n    .es-title{margin:0 0 var(--rhc-space-max-sm)}\n    .es-list{margin:0;padding-inline-start:var(--rhc-space-max-xl)}\n    /* Default link color doesn't meet contrast on the error-alert's light-red surface. */\n    .es-list a{color:var(--rhc-color-lintblauw-700)}\n  "
            ],
            "template": "@switch (status()) {\n  @case ('editing') {\n    <app-stepper class=\"app-section\" [steps]=\"steps()\" [current]=\"current()\"\n      [processName]=\"processName()\" [stepTitle]=\"stepTitle()\" (stepSelected)=\"goToStep.emit($event)\" />\n    @if (errors().length) {\n      <div #errorSummary tabindex=\"-1\" role=\"alert\" aria-labelledby=\"wizard-error-title\" class=\"app-section\">\n        <app-alert type=\"error\">\n          <h3 id=\"wizard-error-title\" class=\"es-title\" i18n=\"@@wizard.errorTitle\">Er ging iets mis met uw invoer</h3>\n          <ul class=\"es-list\">\n            @for (e of errors(); track e.id) {\n              <li><a [href]=\"'#' + e.id\" (click)=\"goToField($event, e.id)\">{{ e.message }}</a></li>\n            }\n          </ul>\n        </app-alert>\n      </div>\n    }\n    <form (ngSubmit)=\"primary.emit()\" class=\"form-horizontal app-section\">\n      <div class=\"form-header\">\n        <div class=\"form-action\"><span class=\"meta\" i18n=\"@@form.verplichteVelden\">* verplichte velden</span></div>\n      </div>\n      <ng-content />\n      <hr />\n      <div class=\"d-flex flex-column flex-sm-row-reverse\">\n        <div class=\"m-0\"><app-button type=\"submit\" variant=\"primary\">{{ primaryLabel() }}</app-button></div>\n        @if (canGoBack()) {\n          <app-button type=\"button\" variant=\"subtle\" class=\"me-auto\" (click)=\"back.emit()\" i18n=\"@@wizard.terugVorige\">Terug naar vorige stap</app-button>\n        }\n      </div>\n      <div class=\"app-section\">\n        <app-button type=\"button\" variant=\"subtle\" (click)=\"cancel.emit()\" i18n=\"@@wizard.annuleren\">Annuleren</app-button>\n      </div>\n    </form>\n  }\n  @case ('submitting') {\n    <app-spinner /> <span>{{ submittingLabel() }}</span>\n  }\n  @case ('submitted') {\n    <ng-content select=\"[wizardSuccess]\" />\n  }\n  @case ('failed') {\n    <app-alert type=\"error\">{{ errorMessage() }}</app-alert>\n    <div class=\"app-section\">\n      <app-button variant=\"secondary\" (click)=\"retry.emit()\" i18n=\"@@wizard.opnieuwProberen\">Opnieuw proberen</app-button>\n    </div>\n  }\n}\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [
                {
                    "name": "canGoBack",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 98,
                    "required": false
                },
                {
                    "name": "current",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 92,
                    "required": true
                },
                {
                    "name": "errorMessage",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 100,
                    "required": false
                },
                {
                    "name": "errors",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "readonly WizardError[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 99,
                    "required": false
                },
                {
                    "name": "primaryLabel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 97,
                    "required": true
                },
                {
                    "name": "processName",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>Overall process name, shown above the step title (e.g. &quot;Herregistratie aanvragen&quot;).</p>\n",
                    "line": 95,
                    "rawdescription": "\nOverall process name, shown above the step title (e.g. \"Herregistratie aanvragen\").",
                    "required": false
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "WizardStatus",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 96,
                    "required": true
                },
                {
                    "name": "steps",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 91,
                    "required": true
                },
                {
                    "name": "stepTitle",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 93,
                    "required": true
                },
                {
                    "name": "submittingLabel",
                    "defaultValue": "$localize`:@@wizard.submitting:Aanvraag wordt verwerkt…`",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 101,
                    "required": false
                }
            ],
            "outputsClass": [
                {
                    "name": "back",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 104,
                    "required": false
                },
                {
                    "name": "cancel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 105,
                    "required": false
                },
                {
                    "name": "goToStep",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>A visited step number was clicked in the stepper — back-navigation only.</p>\n",
                    "line": 108,
                    "rawdescription": "\nA visited step number was clicked in the stepper — back-navigation only.",
                    "required": false
                },
                {
                    "name": "primary",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 103,
                    "required": false
                },
                {
                    "name": "retry",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "void",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 106,
                    "required": false
                }
            ],
            "propertiesClass": [
                {
                    "name": "errorSummary",
                    "defaultValue": "viewChild<ElementRef<HTMLElement>>('errorSummary')",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 119,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "stepper",
                    "defaultValue": "viewChild(StepperComponent)",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 118,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "goToField",
                    "args": [
                        {
                            "name": "ev",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 113,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nError-summary link: focus the field instead of letting the browser navigate.\nA fragment href resolves against <base href=\"/\">, not the current route, so\na real navigation would reload to \"/\" and bounce to login.",
                    "description": "<p>Error-summary link: focus the field instead of letting the browser navigate.\nA fragment href resolves against <base href=\"/\">, not the current route, so\na real navigation would reload to &quot;/&quot; and bounce to login.</p>\n",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "ev",
                            "type": "Event",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [
                {
                    "name": "FormsModule",
                    "type": "module"
                },
                {
                    "name": "ButtonComponent",
                    "type": "component"
                },
                {
                    "name": "AlertComponent",
                    "type": "component"
                },
                {
                    "name": "SpinnerComponent",
                    "type": "component"
                },
                {
                    "name": "StepperComponent",
                    "type": "component"
                }
            ],
            "description": "<p>Template: the canonical shell every wizard renders into, so they cannot drift.\nIt owns the consistent outline — CIBG stappenindicator (title merged in) + error\nsummary + the horizontal <form> + the CIBG procesnavigatie button row + the\nsubmitting/submitted/failed states — and the a11y focus management.</p>\n<p>Presentational and unidirectional: all state stays in the wizard container\n(the Elm-style store). Inputs flow down; the container reacts to the outputs\nand dispatches messages. The step&#39;s own fields are projected as the default\nslot; the success screen is projected via [wizardSuccess].</p>\n",
            "rawdescription": "\n\nTemplate: the canonical shell every wizard renders into, so they cannot drift.\nIt owns the consistent outline — CIBG stappenindicator (title merged in) + error\nsummary + the horizontal <form> + the CIBG procesnavigatie button row + the\nsubmitting/submitted/failed states — and the a11y focus management.\n\nPresentational and unidirectional: all state stays in the wizard container\n(the Elm-style store). Inputs flow down; the container reacts to the outputs\nand dispatches messages. The step's own fields are projected as the default\nslot; the success screen is projected via [wizardSuccess].\n",
            "type": "component",
            "sourceCode": "import { Component, ElementRef, effect, input, output, untracked, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonComponent } from '@shared/ui/button/button.component';\nimport { AlertComponent } from '@shared/ui/alert/alert.component';\nimport { SpinnerComponent } from '@shared/ui/spinner/spinner.component';\nimport { StepperComponent } from '@shared/ui/stepper/stepper.component';\n\n/** CIBG procesnavigatie primary-button copy for a non-final step: \"Naar stap 2 - Werk\".\n    Shared so every wizard's `primaryLabel` reads the same way. */\nexport const naarStapLabel = (stepNumber: number, stepLabel: string) =>\n  $localize`:@@wizard.naarStap:Naar stap ${stepNumber}:nummer: - ${stepLabel}:label:`;\n\n/** A flat validation error pointing at a field: `id` matches the field's anchor. */\nexport interface WizardError {\n  readonly id: string;\n  readonly message: string;\n}\n\nexport type WizardStatus = 'editing' | 'submitting' | 'submitted' | 'failed';\n\n/**\n * Template: the canonical shell every wizard renders into, so they cannot drift.\n * It owns the consistent outline — CIBG stappenindicator (title merged in) + error\n * summary + the horizontal <form> + the CIBG procesnavigatie button row + the\n * submitting/submitted/failed states — and the a11y focus management.\n *\n * Presentational and unidirectional: all state stays in the wizard container\n * (the Elm-style store). Inputs flow down; the container reacts to the outputs\n * and dispatches messages. The step's own fields are projected as the default\n * slot; the success screen is projected via [wizardSuccess].\n */\n@Component({\n  selector: 'app-wizard-shell',\n  imports: [FormsModule, ButtonComponent, AlertComponent, SpinnerComponent, StepperComponent],\n  styles: [`\n    .es-title{margin:0 0 var(--rhc-space-max-sm)}\n    .es-list{margin:0;padding-inline-start:var(--rhc-space-max-xl)}\n    /* Default link color doesn't meet contrast on the error-alert's light-red surface. */\n    .es-list a{color:var(--rhc-color-lintblauw-700)}\n  `],\n  template: `\n    @switch (status()) {\n      @case ('editing') {\n        <app-stepper class=\"app-section\" [steps]=\"steps()\" [current]=\"current()\"\n          [processName]=\"processName()\" [stepTitle]=\"stepTitle()\" (stepSelected)=\"goToStep.emit($event)\" />\n        @if (errors().length) {\n          <div #errorSummary tabindex=\"-1\" role=\"alert\" aria-labelledby=\"wizard-error-title\" class=\"app-section\">\n            <app-alert type=\"error\">\n              <h3 id=\"wizard-error-title\" class=\"es-title\" i18n=\"@@wizard.errorTitle\">Er ging iets mis met uw invoer</h3>\n              <ul class=\"es-list\">\n                @for (e of errors(); track e.id) {\n                  <li><a [href]=\"'#' + e.id\" (click)=\"goToField($event, e.id)\">{{ e.message }}</a></li>\n                }\n              </ul>\n            </app-alert>\n          </div>\n        }\n        <form (ngSubmit)=\"primary.emit()\" class=\"form-horizontal app-section\">\n          <div class=\"form-header\">\n            <div class=\"form-action\"><span class=\"meta\" i18n=\"@@form.verplichteVelden\">* verplichte velden</span></div>\n          </div>\n          <ng-content />\n          <hr />\n          <div class=\"d-flex flex-column flex-sm-row-reverse\">\n            <div class=\"m-0\"><app-button type=\"submit\" variant=\"primary\">{{ primaryLabel() }}</app-button></div>\n            @if (canGoBack()) {\n              <app-button type=\"button\" variant=\"subtle\" class=\"me-auto\" (click)=\"back.emit()\" i18n=\"@@wizard.terugVorige\">Terug naar vorige stap</app-button>\n            }\n          </div>\n          <div class=\"app-section\">\n            <app-button type=\"button\" variant=\"subtle\" (click)=\"cancel.emit()\" i18n=\"@@wizard.annuleren\">Annuleren</app-button>\n          </div>\n        </form>\n      }\n      @case ('submitting') {\n        <app-spinner /> <span>{{ submittingLabel() }}</span>\n      }\n      @case ('submitted') {\n        <ng-content select=\"[wizardSuccess]\" />\n      }\n      @case ('failed') {\n        <app-alert type=\"error\">{{ errorMessage() }}</app-alert>\n        <div class=\"app-section\">\n          <app-button variant=\"secondary\" (click)=\"retry.emit()\" i18n=\"@@wizard.opnieuwProberen\">Opnieuw proberen</app-button>\n        </div>\n      }\n    }\n  `,\n})\nexport class WizardShellComponent {\n  steps = input.required<string[]>();\n  current = input.required<number>();\n  stepTitle = input.required<string>();\n  /** Overall process name, shown above the step title (e.g. \"Herregistratie aanvragen\"). */\n  processName = input('');\n  status = input.required<WizardStatus>();\n  primaryLabel = input.required<string>();\n  canGoBack = input(false);\n  errors = input<readonly WizardError[]>([]);\n  errorMessage = input('');\n  submittingLabel = input($localize`:@@wizard.submitting:Aanvraag wordt verwerkt…`);\n\n  primary = output<void>();\n  back = output<void>();\n  cancel = output<void>();\n  retry = output<void>();\n  /** A visited step number was clicked in the stepper — back-navigation only. */\n  goToStep = output<number>();\n\n  /** Error-summary link: focus the field instead of letting the browser navigate.\n      A fragment href resolves against <base href=\"/\">, not the current route, so\n      a real navigation would reload to \"/\" and bounce to login. */\n  protected goToField(ev: Event, id: string) {\n    ev.preventDefault();\n    document.getElementById(id)?.focus(); // focus() scrolls the input into view\n  }\n\n  private stepper = viewChild(StepperComponent);\n  private errorSummary = viewChild<ElementRef<HTMLElement>>('errorSummary');\n\n  constructor() {\n    // A11y: move focus to the step title when the step changes (skip first run\n    // so we don't grab focus on initial load). Tracks current(), which is value-\n    // stable across keystrokes, so typing never steals focus.\n    let firstStep = true;\n    effect(() => {\n      this.current();\n      if (firstStep) { firstStep = false; return; }\n      untracked(() => queueMicrotask(() => this.stepper()?.focusTitle()));\n    });\n    // A11y: when validation errors first appear (after a failed submit), move\n    // focus to the error summary so it's announced. Only on the rising edge\n    // (none → some): typing rebuilds the errors array each keystroke, and\n    // re-focusing then would scroll the page up mid-edit. The summary keeps\n    // role=\"alert\", so content changes are still announced without the jump.\n    let firstErr = true;\n    let hadErrors = false;\n    effect(() => {\n      const has = this.errors().length > 0;\n      if (firstErr) { firstErr = false; hadErrors = has; return; }\n      if (has && !hadErrors) untracked(() => queueMicrotask(() => this.errorSummary()?.nativeElement.focus()));\n      hadErrors = has;\n    });\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    .es-title{margin:0 0 var(--rhc-space-max-sm)}\n    .es-list{margin:0;padding-inline-start:var(--rhc-space-max-xl)}\n    /* Default link color doesn't meet contrast on the error-alert's light-red surface. */\n    .es-list a{color:var(--rhc-color-lintblauw-700)}\n  \n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 119
            },
            "extends": []
        }
    ],
    "modules": [],
    "miscellaneous": {
        "variables": [
            {
                "name": "AANVRAAG_TYPES",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/registratie/infrastructure/applications.adapter.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "string[]",
                "defaultValue": "['registratie', 'herregistratie', 'intake']"
            },
            {
                "name": "ACTIVE",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/upload/upload.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "ReadonlyArray<unknown>",
                "defaultValue": "['queued', 'uploading', 'complete']"
            },
            {
                "name": "appConfig",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/app.config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "ApplicationConfig",
                "defaultValue": "{\n  providers: [\n    provideBrowserGlobalErrorListeners(),\n    provideRouter(\n      routes,\n      // Cross-fade page-to-page navigations only. A silent same-route nav — e.g.\n      // draft-sync stamping `?aanvraag=<id>` into the URL mid-wizard — must NOT\n      // animate: for the transition's duration Firefox's `::view-transition`\n      // overlay swallows pointer events (Chrome sets pointer-events:none, so it\n      // doesn't), which loses a click landing on it and makes the wizard's \"next\"\n      // button need a second click. Skip the transition when the route is unchanged.\n      withViewTransitions({\n        onViewTransitionCreated: ({ transition, from, to }) => {\n          // `from`/`to` are the ROOT snapshots (the shared shell), so descend to the\n          // leaf before comparing — otherwise every navigation looks \"same route\".\n          const leaf = (r: ActivatedRouteSnapshot) => {\n            while (r.firstChild) r = r.firstChild;\n            return r;\n          };\n          if (leaf(from).routeConfig === leaf(to).routeConfig) transition.skipTransition();\n        },\n      }),\n    ),\n    // Dev-only: the ?scenario= toggle must never reach a production build, where\n    // a query param could otherwise force errors on the live app.\n    provideHttpClient(withInterceptors(isDevMode() ? [scenarioInterceptor, roleInterceptor] : [])),\n    provideApiClient(),\n    { provide: SESSION_PORT, useExisting: SessionStore },\n    { provide: LOCALE_ID, useValue: 'nl' },\n  ]\n}"
            },
            {
                "name": "ASYNC",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/ui/async/async.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "[\n  AsyncComponent, AsyncLoadedDirective, AsyncLoadingDirective,\n  AsyncEmptyDirective, AsyncErrorDirective,\n] as const",
                "rawdescription": "Convenience: import this array to get the wrapper + all slot directives.",
                "description": "<p>Convenience: import this array to get the wrapper + all slot directives.</p>\n"
            },
            {
                "name": "authGuard",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/auth/auth.guard.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "CanActivateFn",
                "defaultValue": "() => {\n  const store = inject(SessionStore);\n  const router = inject(Router);\n  return store.isAuthenticated() ? true : router.createUrlTree(['/login']);\n}",
                "rawdescription": "Route guard: only let authenticated users in; otherwise redirect to /login.",
                "description": "<p>Route guard: only let authenticated users in; otherwise redirect to /login.</p>\n"
            },
            {
                "name": "BRIEF_ACTION_FAILED",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "$localize`:@@brief.action.failed:De actie is niet gelukt. Probeer het later opnieuw.`"
            },
            {
                "name": "BRIEF_LOAD_FAILED",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "$localize`:@@brief.load.failed:De brief kon niet worden geladen.`"
            },
            {
                "name": "categoryOf",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/upload/upload.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(s: UploadState, categoryId: string) => s.categories.find((c) => c.categoryId === categoryId)"
            },
            {
                "name": "DEBOUNCE_MS",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/registratie/application/draft-sync.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "number",
                "defaultValue": "600"
            },
            {
                "name": "emptyDraft",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Draft",
                "defaultValue": "{ antwoorden: {} }"
            },
            {
                "name": "environment",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/environments/environment.prod.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "object",
                "defaultValue": "{\n  production: true,\n  apiBaseUrl: '',\n}",
                "rawdescription": "Production environment. `apiBaseUrl` stays relative ('') for a same-origin /\nreverse-proxy deployment; set it to the API origin (e.g. 'https://api.example.nl')\nwhen the SPA and backend are served from different hosts. This is the single\nplace the deployed API location is configured.",
                "description": "<p>Production environment. <code>apiBaseUrl</code> stays relative (&#39;&#39;) for a same-origin /\nreverse-proxy deployment; set it to the API origin (e.g. &#39;<a href=\"https://api.example.nl\">https://api.example.nl</a>&#39;)\nwhen the SPA and backend are served from different hosts. This is the single\nplace the deployed API location is configured.</p>\n"
            },
            {
                "name": "environment",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/environments/environment.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "object",
                "defaultValue": "{\n  production: false,\n  apiBaseUrl: '',\n}",
                "rawdescription": "Default (development) environment. `apiBaseUrl` is empty so requests are\nrelative to the current origin — in dev the ng-serve proxy forwards /api to the\nbackend (proxy.conf.json). Swapped for environment.prod.ts in production builds\n(angular.json fileReplacements).",
                "description": "<p>Default (development) environment. <code>apiBaseUrl</code> is empty so requests are\nrelative to the current origin — in dev the ng-serve proxy forwards /api to the\nbackend (proxy.conf.json). Swapped for environment.prod.ts in production builds\n(angular.json fileReplacements).</p>\n"
            },
            {
                "name": "err",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/kernel/fp.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "<E>(error: E): Result<E, never> => ({ ok: false, error })"
            },
            {
                "name": "find",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/upload/upload.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(s: UploadState, localId: string) => s.uploads.find((u) => u.localId === localId)"
            },
            {
                "name": "genericError",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/upload/upload.adapter.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(): string => UPLOAD_FAILED"
            },
            {
                "name": "HANDMATIG",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/registratie/ui/registratie-wizard/registratie-wizard.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "string",
                "defaultValue": "'__handmatig__'"
            },
            {
                "name": "ICON_LABELS",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/ui/alert/alert.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Record<AlertType, string>",
                "defaultValue": "{\n  info: $localize`:@@alert.icon.info:Informatie`,\n  ok: $localize`:@@alert.icon.ok:Gelukt`,\n  warning: $localize`:@@alert.icon.warning:Waarschuwing`,\n  error: $localize`:@@alert.icon.error:Foutmelding`,\n}"
            },
            {
                "name": "inFlight",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/upload/upload.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(s: UploadState): Upload[] =>\n  s.uploads.filter((u) => u.status.type === 'queued' || u.status.type === 'uploading')",
                "rawdescription": "Used by the shell to find what to poll on return: still-in-flight uploads.",
                "description": "<p>Used by the shell to find what to poll on return: still-in-flight uploads.</p>\n"
            },
            {
                "name": "initial",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "WizardState",
                "defaultValue": "{ tag: 'Editing', step: 1, draft: { uren: '', jaren: '', punten: '' }, errors: {}, upload: initialUpload }"
            },
            {
                "name": "initial",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "IntakeState",
                "defaultValue": "{ tag: 'Answering', answers: {}, cursor: 0, errors: {}, scholingThreshold: SCHOLING_THRESHOLD_DEFAULT }"
            },
            {
                "name": "initial",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/registratie/domain/change-request.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "State",
                "defaultValue": "{\n  tag: 'Editing',\n  draft: { straat: '', postcode: '', woonplaats: '' },\n  errors: {},\n}"
            },
            {
                "name": "initial",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "RegistratieState",
                "defaultValue": "{ tag: 'Invullen', draft: emptyDraft, cursor: 0, errors: {}, upload: initialUpload }"
            },
            {
                "name": "initial",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/brief/domain/brief.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "BriefState",
                "defaultValue": "{ tag: 'loading' }"
            },
            {
                "name": "initialUpload",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/upload/upload.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "UploadState",
                "defaultValue": "{\n  categories: [],\n  uploads: [],\n  deliveryChannel: {},\n  rejections: {},\n  backgroundSyncAvailable: false,\n}"
            },
            {
                "name": "JA_NEE",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/ui/radio-group/radio-group.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "RadioOption[]",
                "defaultValue": "[\n  { value: 'ja', label: $localize`:@@common.ja:Ja` },\n  { value: 'nee', label: $localize`:@@common.nee:Nee` },\n]",
                "rawdescription": "The ubiquitous yes/no option pair. Language-agnostic now the labels are\nlocalized, so it lives next to RadioOption and both wizards import it.",
                "description": "<p>The ubiquitous yes/no option pair. Language-agnostic now the labels are\nlocalized, so it lives next to RadioOption and both wizards import it.</p>\n"
            },
            {
                "name": "KANALEN",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/registratie/ui/registratie-wizard/registratie-wizard.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "[]",
                "defaultValue": "[\n  { value: 'email', label: $localize`:@@registratie.kanaalEmail:E-mail` },\n  { value: 'post', label: $localize`:@@registratie.kanaalPost:Post` },\n]"
            },
            {
                "name": "MARK_TAG",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Record<Mark, string>",
                "defaultValue": "{ bold: 'strong', italic: 'em', underline: 'u' }"
            },
            {
                "name": "MARKS",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "string[]",
                "defaultValue": "['bold', 'italic', 'underline']"
            },
            {
                "name": "naarStapLabel",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/layout/wizard-shell/wizard-shell.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(stepNumber: number, stepLabel: string) =>\n  $localize`:@@wizard.naarStap:Naar stap ${stepNumber}:nummer: - ${stepLabel}:label:`",
                "rawdescription": "CIBG procesnavigatie primary-button copy for a non-final step: \"Naar stap 2 - Werk\".\nShared so every wizard's `primaryLabel` reads the same way.",
                "description": "<p>CIBG procesnavigatie primary-button copy for a non-final step: &quot;Naar stap 2 - Werk&quot;.\nShared so every wizard&#39;s <code>primaryLabel</code> reads the same way.</p>\n"
            },
            {
                "name": "NAV_ITEMS",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/layout/site-header/site-header.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "HeaderNavItem[]",
                "defaultValue": "[\n  { label: $localize`:@@header.nav.overzicht:Overzicht`, to: '/dashboard' },\n  { label: $localize`:@@header.nav.gegevens:Mijn gegevens`, to: '/registratie' },\n  { label: $localize`:@@header.nav.herregistratie:Herregistratie`, to: '/herregistratie' },\n  { label: $localize`:@@header.nav.inschrijven:Inschrijven`, to: '/registreren' },\n]"
            },
            {
                "name": "nextId",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/ui/choice-list/choice-list.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "number",
                "defaultValue": "0"
            },
            {
                "name": "NL_TAALVAARDIGHEID_VRAAG",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/registratie/ui/registratie-wizard/registratie-wizard.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "string",
                "defaultValue": "'nl-taalvaardigheid'",
                "rawdescription": "The server-owned geldigheidsvraag whose\"ja\" answer requires a Dutch-taalvaardigheid\nupload (proof of the confirmed B2 level). Stable id shared with the backend.",
                "description": "<p>The server-owned geldigheidsvraag whose&quot;ja&quot; answer requires a Dutch-taalvaardigheid\nupload (proof of the confirmed B2 level). Stable id shared with the backend.</p>\n"
            },
            {
                "name": "ok",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/kernel/fp.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "<T>(value: T): Result<never, T> => ({ ok: true, value })"
            },
            {
                "name": "ORDER",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Mark[]",
                "defaultValue": "['bold', 'italic', 'underline']",
                "rawdescription": "The quarantined boundary between the imperative `contenteditable` DOM and the\nserialisable `RichTextBlock` value. Pure functions (given a DOM they render /\nread) so they round-trip losslessly and can be unit-tested without Angular. The\nrest of the app only ever sees `RichTextBlock` — this is the one place DOM leaks.\n\nponytail: mark detection covers the tags/styles a browser's execCommand emits\n(strong/b, em/i, u, and inline font-weight/style/decoration); exotic pasted markup\ndegrades to plain text rather than crashing.",
                "description": "<p>The quarantined boundary between the imperative <code>contenteditable</code> DOM and the\nserialisable <code>RichTextBlock</code> value. Pure functions (given a DOM they render /\nread) so they round-trip losslessly and can be unit-tested without Angular. The\nrest of the app only ever sees <code>RichTextBlock</code> — this is the one place DOM leaks.</p>\n<p>ponytail: mark detection covers the tags/styles a browser&#39;s execCommand emits\n(strong/b, em/i, u, and inline font-weight/style/decoration); exotic pasted markup\ndegrades to plain text rather than crashing.</p>\n"
            },
            {
                "name": "parseError",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/upload/upload.adapter.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(body: string): string => {\n  try {\n    return problemDetail(JSON.parse(body), UPLOAD_FAILED);\n  } catch {\n    return genericError();\n  }\n}"
            },
            {
                "name": "RAW_BRACES",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/brief/domain/placeholders.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "/\\{\\{|\\}\\}/"
            },
            {
                "name": "REDACTED",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/ui/debug-state/mask.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "string",
                "defaultValue": "'‹redacted›'"
            },
            {
                "name": "REJECTION_MESSAGES",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/upload/upload.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Record<\"type\" | \"size\" | \"multiple\", string>",
                "defaultValue": "{\n  type: $localize`:@@upload.reject.type:Dit bestandstype is niet toegestaan voor deze categorie.`,\n  size: $localize`:@@upload.reject.size:Dit bestand is te groot.`,\n  multiple: $localize`:@@upload.reject.multiple:U kunt voor deze categorie maar één bestand uploaden.`,\n}"
            },
            {
                "name": "REQUEST_TIMEOUT_MS",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/infrastructure/api-client.provider.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "number",
                "defaultValue": "10_000",
                "rawdescription": "Single place every API call passes through: the seam for cross-cutting concerns.",
                "description": "<p>Single place every API call passes through: the seam for cross-cutting concerns.</p>\n"
            },
            {
                "name": "roleInterceptor",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/infrastructure/role.interceptor.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "HttpInterceptorFn",
                "defaultValue": "(req, next) => {\n  if (!req.url.includes('/api/v1/brief')) return next(req);\n  return next(req.clone({ setHeaders: { 'X-Role': currentRole() } }));\n}",
                "rawdescription": "Dev-only: stamps brief requests with the current `?role=` as an `X-Role` header so\nthe backend can enforce the drafter/approver rules. Only brief endpoints carry it;\neverything else is untouched.",
                "description": "<p>Dev-only: stamps brief requests with the current <code>?role=</code> as an <code>X-Role</code> header so\nthe backend can enforce the drafter/approver rules. Only brief endpoints carry it;\neverything else is untouched.</p>\n"
            },
            {
                "name": "routes",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/app.routes.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Routes",
                "defaultValue": "[\n  {\n    path: '',\n    component: ShellComponent, // persistent header/footer; only children swap\n    children: [\n      { path: '', pathMatch: 'full', redirectTo: 'login' },\n      { path: 'login', loadComponent: () => \"import('@auth/ui/login.page').then(m => m.LoginPage)\" },\n      { path: 'dashboard', canActivate: [authGuard], loadComponent: () => \"import('@registratie/ui/dashboard.page').then(m => m.DashboardPage)\" },\n      { path: 'registratie', canActivate: [authGuard], loadComponent: () => \"import('@registratie/ui/registration-detail.page').then(m => m.RegistrationDetailPage)\" },\n      { path: 'registreren', canActivate: [authGuard], loadComponent: () => \"import('@registratie/ui/registratie.page').then(m => m.RegistratiePage)\" },\n      { path: 'herregistratie', canActivate: [authGuard], loadComponent: () => \"import('@herregistratie/ui/herregistratie.page').then(m => m.HerregistratiePage)\" },\n      { path: 'intake', canActivate: [authGuard], loadComponent: () => \"import('@herregistratie/ui/intake.page').then(m => m.IntakePage)\" },\n      { path: 'brief', canActivate: [authGuard], loadComponent: () => \"import('@brief/ui/brief.page').then(m => m.BriefPage)\" },\n      { path: 'concepts', loadComponent: () => \"import('./showcase/concepts.page').then(m => m.ConceptsPage)\" },\n      { path: '**', redirectTo: 'login' },\n    ],\n  },\n]"
            },
            {
                "name": "ROUTES",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/layout/breadcrumb/breadcrumb-trail.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Record<string, Crumb>",
                "defaultValue": "{\n  '/dashboard': { label: $localize`:@@crumb.dashboard:Mijn overzicht` },\n  '/registratie': { label: $localize`:@@crumb.registratie:Mijn gegevens`, parent: '/dashboard' },\n  '/registreren': { label: $localize`:@@crumb.registreren:Inschrijven`, parent: '/dashboard' },\n  '/herregistratie': { label: $localize`:@@crumb.herregistratie:Herregistratie`, parent: '/dashboard' },\n  '/intake': { label: $localize`:@@crumb.intake:Herregistratie-intake`, parent: '/dashboard' },\n  '/concepts': { label: $localize`:@@crumb.concepts:Functionele patronen`, parent: '/dashboard' },\n}"
            },
            {
                "name": "SAMPLE_VALUES",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/brief/ui/letter-preview/letter-preview.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Record<string, string>",
                "defaultValue": "{\n  naam_zorgverlener: 'J. Jansen',\n  big_nummer: '12345678901',\n}"
            },
            {
                "name": "scenarioInterceptor",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/infrastructure/scenario.interceptor.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "HttpInterceptorFn",
                "defaultValue": "(req, next) => {\n  if (!req.url.includes('/api/')) return next(req);\n\n  switch (currentScenario()) {\n    case 'slow':\n      return next(req).pipe(delay(2500));\n    case 'loading':\n      return next(req).pipe(delay(600_000)); // effectively never resolves\n    case 'empty':\n      // '[]' so the typed client parses it to an empty array (notes → Empty state).\n      return of(new HttpResponse({ status: 200, body: '[]' })).pipe(delay(400));\n    case 'error':\n      return timer(400).pipe(\n        switchMap(() => throwError(() =>\n          new HttpErrorResponse({ status: 500, statusText: 'Demo-fout', url: req.url }))),\n      );\n    default:\n      return next(req);\n  }\n}",
                "rawdescription": "Demo-only: rewrites the timing/outcome of API data requests based on\n?scenario= so loading / empty / error states can be shown on demand.\nNon-API requests are untouched.",
                "description": "<p>Demo-only: rewrites the timing/outcome of API data requests based on\n?scenario= so loading / empty / error states can be shown on demand.\nNon-API requests are untouched.</p>\n"
            },
            {
                "name": "SCHOLING_THRESHOLD_DEFAULT",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "number",
                "defaultValue": "1000",
                "rawdescription": "Demo fallback only — the real threshold is a SERVER-OWNED policy value fetched\nat runtime (see IntakePolicyDto / SetPolicy). ponytail: default is the offline\nfallback; the server value wins.",
                "description": "<p>Demo fallback only — the real threshold is a SERVER-OWNED policy value fetched\nat runtime (see IntakePolicyDto / SetPolicy). ponytail: default is the offline\nfallback; the server value wins.</p>\n"
            },
            {
                "name": "SESSION_PORT",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/application/session.port.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "new InjectionToken<SessionPort>('SESSION_PORT')"
            },
            {
                "name": "STEPS",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "StepId[]",
                "defaultValue": "['buitenland', 'werk', 'review']",
                "rawdescription": "The fixed step list. Number of steps never changes; questions reveal inline.",
                "description": "<p>The fixed step list. Number of steps never changes; questions reveal inline.</p>\n"
            },
            {
                "name": "STEPS",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "StepId[]",
                "defaultValue": "['adres', 'beroep', 'controle']",
                "rawdescription": "The fixed step list. Number of steps never changes; questions reveal inline.",
                "description": "<p>The fixed step list. Number of steps never changes; questions reveal inline.</p>\n"
            },
            {
                "name": "STORAGE_KEY",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/auth/application/session.store.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "string",
                "defaultValue": "'session-v1'"
            },
            {
                "name": "SUBMIT_FAILED",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/application/submit.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "$localize`:@@submit.failed:Het indienen is niet gelukt. Probeer het later opnieuw.`"
            },
            {
                "name": "TYPE_LABELS",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/registratie/ui/aanvraag-block/aanvraag-block.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Record<AanvraagType, string>",
                "defaultValue": "{\n  registratie: $localize`:@@aanvraagBlock.type.registratie:Inschrijving`,\n  herregistratie: $localize`:@@aanvraagBlock.type.herregistratie:Herregistratie`,\n  intake: $localize`:@@aanvraagBlock.type.intake:Herregistratie-intake`,\n}"
            },
            {
                "name": "UPLOAD_ABORTED",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/upload/upload.adapter.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "Symbol('upload-aborted')",
                "rawdescription": "Sentinel rejection so the caller can tell a user-cancel from a real failure.",
                "description": "<p>Sentinel rejection so the caller can tell a user-cancel from a real failure.</p>\n"
            },
            {
                "name": "UPLOAD_FAILED",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/upload/upload.adapter.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "$localize`:@@upload.failed:Uploaden is niet gelukt. Probeer het opnieuw.`"
            },
            {
                "name": "VALID",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/infrastructure/scenario.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Scenario[]",
                "defaultValue": "['default', 'slow', 'loading', 'empty', 'error', 'upload-slow', 'upload-fail']"
            }
        ],
        "functions": [
            {
                "name": "addFreeText",
                "file": "src/app/brief/domain/brief.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "sectionKey",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Brief",
                "jsdoctags": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "sectionKey",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "adjacentChip",
                "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The placeholder chip immediately adjacent to a collapsed caret in the given direction\n(-1 = before / Backspace, +1 = after / Delete), or null. Chips are contenteditable=false,\nwhich some browsers won&#39;t delete on Backspace; the editor uses this to remove them itself.</p>\n",
                "args": [
                    {
                        "name": "container",
                        "type": "Node",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "offset",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "direction",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "HTMLElement | null",
                "jsdoctags": [
                    {
                        "name": "container",
                        "type": "Node",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "offset",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "direction",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "allBlocks",
                "file": "src/app/brief/domain/brief.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "LetterBlock[]",
                "jsdoctags": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "allDiagnostics",
                "file": "src/app/brief/domain/brief.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Every diagnostic in the letter, in section→block→node order. This is what the\ndiagnostics panel renders and what the send gate checks.</p>\n",
                "args": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Diagnostic[]",
                "jsdoctags": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "andThen",
                "file": "src/app/shared/application/remote-data.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Chain a second source that depends on the first one&#39;s value.</p>\n",
                "args": [
                    {
                        "name": "rd",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RemoteData<E, B>",
                "jsdoctags": [
                    {
                        "name": "rd",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "assertNever",
                "file": "src/app/shared/kernel/fp.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Tiny native-TS functional toolkit. No dependency — this is the whole &quot;library&quot;.\nReused by every &quot;impossible states&quot; concept in the POC.</p>\n",
                "args": [
                    {
                        "name": "x",
                        "type": "never",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "never",
                "jsdoctags": [
                    {
                        "name": "x",
                        "type": "never",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "back",
                "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "WizardState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "back",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "IntakeState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "back",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RegistratieState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "blockActions",
                "file": "src/app/registratie/domain/block-actions.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "status",
                        "type": "AanvraagStatus",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "BlockAction[]",
                "jsdoctags": [
                    {
                        "name": "status",
                        "type": "AanvraagStatus",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "blockToDto",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "b",
                        "type": "LetterBlock",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "LetterBlockDto",
                "jsdoctags": [
                    {
                        "name": "b",
                        "type": "LetterBlock",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "canonical",
                "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "marks",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Mark[]",
                "jsdoctags": [
                    {
                        "name": "marks",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "canSubmit",
                "file": "src/app/brief/domain/brief.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>A letter can be submitted only when every REQUIRED section has at least one block.</p>\n",
                "args": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "boolean",
                "jsdoctags": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "categorySatisfied",
                "file": "src/app/shared/upload/upload.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>A required category is satisfied by an initiated upload OR a post-delivery choice.</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "categoryId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "boolean",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "categoryId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "collect",
                "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "node",
                        "type": "Node",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "marks",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "out",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "void",
                "jsdoctags": [
                    {
                        "name": "node",
                        "type": "Node",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "marks",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "out",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "contentToDto",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "content",
                        "type": "RichTextBlock",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RichTextBlockDto",
                "jsdoctags": [
                    {
                        "name": "content",
                        "type": "RichTextBlock",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "createChip",
                "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Build one non-editable placeholder chip element (shared by initial render and\nlive caret insertion). <code>data-auto</code> distinguishes auto-resolvable vs manual fields\nfor styling; it is a render hint only and is ignored on read-back.</p>\n",
                "args": [
                    {
                        "name": "doc",
                        "type": "Document",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "key",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "label",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "auto",
                        "type": "unknown",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "false"
                    }
                ],
                "returnType": "HTMLElement",
                "jsdoctags": [
                    {
                        "name": "doc",
                        "type": "Document",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "key",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "label",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "auto",
                        "type": "unknown",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "false",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "createDraftSync",
                "file": "src/app/registratie/application/draft-sync.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The effectful glue that replaces per-wizard sessionStorage with a backend-owned\nConcept (PRD 0001, phase D). Instantiated in a field initializer (like\n<code>createStore</code>/<code>createUploadController</code>). Responsibilities:</p>\n<ul>\n<li>resume: a <code>?aanvraag=&lt;id&gt;</code> link wins; otherwise resume the ONE existing Concept of\nthis type (at most one per type), seeding the machine from its saved draft;</li>\n<li>create-on-first-progress: when no Concept exists, one is created lazily the first\ntime the wizard reports a non-null snapshot, and its id is stamped into the URL;</li>\n<li>debounced draft sync on every subsequent change.</li>\n</ul>\n<p>Inert without a Router (stories) or when <code>enabled()</code> is false — no network, no resume.</p>\n",
                "args": [
                    {
                        "name": "deps",
                        "type": "DraftSyncDeps",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "jsdoctags": [
                    {
                        "name": "deps",
                        "type": "DraftSyncDeps",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "createStore",
                "file": "src/app/shared/application/store.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "init",
                        "type": "Model",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "update",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Store<Model, Msg>",
                "jsdoctags": [
                    {
                        "name": "init",
                        "type": "Model",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "update",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "createSubmitChangeRequest",
                "file": "src/app/registratie/application/submit-change-request.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Command factory: binds the change-request adapter (which owns the <code>ApiClient</code>)\nin an injection context and returns the submit function the form calls. Same\nfield-initializer shape as <code>createStore</code>/<code>createDraftSync</code>, so the UI holds an\napplication command — not the network client. Returns a <code>Result</code>, never a thrown\nerror, so the form&#39;s reduce can branch on the outcome.</p>\n",
                "args": []
            },
            {
                "name": "createUploadController",
                "file": "src/app/shared/upload/upload-controller.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The effectful glue between the <code>&lt;app-document-upload&gt;</code> organism&#39;s events and the\npure upload reducer + transport. Both wizards instantiate one (in a field\ninitializer, like <code>createStore</code>). Holds the only state a reducer can&#39;t: the live\n<code>File</code> blobs keyed by localId (needed to retry an upload). Loads categories,\nreports background-sync availability, and polls on tab refocus.</p>\n",
                "args": [
                    {
                        "name": "deps",
                        "type": "UploadControllerDeps",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "jsdoctags": [
                    {
                        "name": "deps",
                        "type": "UploadControllerDeps",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "currentRole",
                "file": "src/app/shared/infrastructure/role.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Dev-only role stand-in (the reading MECHANISM; the <code>Role</code> type is domain). This\nPOC has one faked self-service user and no real identities, so the two-person\nletter workflow (drafter vs approver) is driven by a <code>?role=</code> query param —\nexactly the pattern of the <code>?scenario=</code> toggle. The backend receives it as an\n<code>X-Role</code> header (see role.interceptor) and enforces the approver≠drafter rule;\nthe FE derives <code>editable</code> from it.</p>\n",
                "args": [],
                "returnType": "Role"
            },
            {
                "name": "currentScenario",
                "file": "src/app/shared/infrastructure/scenario.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Reads ?scenario= from the URL so a demo can force each async state.</p>\n",
                "args": [],
                "returnType": "Scenario"
            },
            {
                "name": "currentStep",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Which step the cursor currently points at (clamped to the fixed list).</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "Extract",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "StepId",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "Extract",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "currentStep",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Which step the cursor currently points at (clamped to the fixed list).</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "Extract",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "StepId",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "Extract",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "declareerBeroep",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Declare the beroep for a manually-entered diploma (chosen from a fixed list).</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "beroep",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RegistratieState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "beroep",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "deepCopyBlock",
                "file": "src/app/shared/kernel/rich-text.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The frozen-snapshot primitive: a deep VALUE copy of a block. Inserting a library\npassage into a letter copies its tree through here, so the letter never shares a\nreference with the library — later library edits can&#39;t mutate an existing letter.</p>\n",
                "args": [
                    {
                        "name": "block",
                        "type": "RichTextBlock",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RichTextBlock",
                "jsdoctags": [
                    {
                        "name": "block",
                        "type": "RichTextBlock",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "deliveryRefs",
                "file": "src/app/shared/upload/upload.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The submit payload fragment: digital docs carry their documentId, post categories the channel.</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Array<literal type>",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "diag",
                "file": "src/app/brief/domain/placeholders.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "code",
                        "type": "DiagnosticCode",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "location",
                        "type": "DiagnosticLocation",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "key",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true
                    }
                ],
                "returnType": "Diagnostic",
                "jsdoctags": [
                    {
                        "name": "code",
                        "type": "DiagnosticCode",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "location",
                        "type": "DiagnosticLocation",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "key",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true,
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "editBlockContent",
                "file": "src/app/brief/domain/brief.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "blockId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "content",
                        "type": "RichTextBlock",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Brief",
                "jsdoctags": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "blockId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "content",
                        "type": "RichTextBlock",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "emptyBlock",
                "file": "src/app/shared/kernel/rich-text.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>An empty editable block is one empty paragraph — never zero paragraphs, so the\neditor always has a caret line.</p>\n",
                "args": [],
                "returnType": "RichTextBlock"
            },
            {
                "name": "fakeResource",
                "file": "src/app/showcase/concepts.page.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Minimal fake Resource so <app-async> can be driven through every state without HTTP.</p>\n",
                "args": [
                    {
                        "name": "status",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "value",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true
                    },
                    {
                        "name": "error",
                        "type": "Error",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true
                    }
                ],
                "returnType": "Resource<T>",
                "jsdoctags": [
                    {
                        "name": "status",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "value",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true,
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "error",
                        "type": "Error",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true,
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "fillLine",
                "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Fill one line element (<p> or <li>) with a paragraph&#39;s nodes; empty lines keep a\nfocusable <br>. Shared by paragraph and list-item rendering.</p>\n",
                "args": [
                    {
                        "name": "el",
                        "type": "HTMLElement",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "para",
                        "type": "Paragraph",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "labelFor",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "doc",
                        "type": "Document",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "autoFor",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true
                    }
                ],
                "returnType": "void",
                "jsdoctags": [
                    {
                        "name": "el",
                        "type": "HTMLElement",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "para",
                        "type": "Paragraph",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "labelFor",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "doc",
                        "type": "Document",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "autoFor",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true,
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "foldRemote",
                "file": "src/app/shared/application/remote-data.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Exhaustive fold: you must handle every case, checked at compile time.</p>\n",
                "args": [
                    {
                        "name": "rd",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "h",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "R",
                "jsdoctags": [
                    {
                        "name": "rd",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "h",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "formatNL",
                "file": "src/app/registratie/domain/tasks.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "d",
                        "type": "Date",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "string",
                "jsdoctags": [
                    {
                        "name": "d",
                        "type": "Date",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "formatNL",
                "file": "src/app/registratie/ui/aanvraag-block/aanvraag-block.component.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "iso",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true
                    }
                ],
                "returnType": "string",
                "jsdoctags": [
                    {
                        "name": "iso",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true,
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "fromResource",
                "file": "src/app/shared/application/remote-data.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Project Angular&#39;s loosely-typed Resource into a RemoteData value.</p>\n",
                "args": [
                    {
                        "name": "r",
                        "type": "Resource",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "isEmpty",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "() => false"
                    }
                ],
                "returnType": "RemoteData<Error | undefined, T>",
                "jsdoctags": [
                    {
                        "name": "r",
                        "type": "Resource",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "isEmpty",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "() => false",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "gaNaarStap",
                "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Jump back to an earlier step to correct data (controle → step N). Forward\njumps are not allowed (would skip validation).</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "step",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "WizardState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "step",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "gaNaarStap",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Jump back to an earlier step to correct answers (review → step N). Forward\njumps are not allowed (would skip validation).</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "cursor",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "IntakeState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "cursor",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "gaNaarStap",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Jump back to an earlier step to correct data (controle → step N). Forward\njumps are not allowed (would skip validation). Preserves the draft.</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "cursor",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RegistratieState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "cursor",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "groupParagraphs",
                "file": "src/app/brief/ui/letter-preview/letter-preview.component.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "paras",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "PreviewSegment[]",
                "jsdoctags": [
                    {
                        "name": "paras",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "hasBlockingErrors",
                "file": "src/app/brief/domain/brief.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "diagnostics",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "boolean",
                "jsdoctags": [
                    {
                        "name": "diagnostics",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "hasProgress",
                "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Has the user meaningfully started, so it&#39;s worth persisting as a Concept?</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "Extract",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "boolean",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "Extract",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "hasProgress",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Has the user meaningfully started, so it&#39;s worth persisting as a Concept?\n(No auto-prefill here — pristine means truly untouched.)</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "Extract",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "boolean",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "Extract",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "hasProgress",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Has the user meaningfully started, so it&#39;s worth persisting as a Concept? Excludes\nthe automatic BRP address prefill on step 0 — a bare page visit creates nothing.\nponytail: an address typed at step 0 without any of these signals is not yet\npersisted (created once they advance/choose); accepted regression vs. sessionStorage.</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "Extract",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "boolean",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "Extract",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "herregistratieDeadline",
                "file": "src/app/registratie/domain/registration.policy.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The herregistratie deadline, if the status has one (only the active state does).</p>\n",
                "args": [
                    {
                        "name": "reg",
                        "type": "Registration",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Date | null",
                "jsdoctags": [
                    {
                        "name": "reg",
                        "type": "Registration",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "httpClientFetch",
                "file": "src/app/shared/infrastructure/api-client.provider.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Adapts Angular&#39;s HttpClient to the fetch-shaped interface the NSwag-generated\nclient expects, so every API call flows through HttpClient interceptors (the\n<code>?scenario=</code> toggle) and the cross-cutting concerns below. The generated client\nis the only place HTTP shapes are known; this is the only place it meets\nAngular&#39;s HTTP stack — i.e. the one seam to add:</p>\n<ul>\n<li>timeout (done — REQUEST_TIMEOUT_MS),</li>\n<li>correlation id (done — X-Correlation-Id, echoed in backend logs),</li>\n<li>idempotency key for writes (done — Idempotency-Key; a real retry would thread\na STABLE key per logical submit so re-sends dedupe; here it&#39;s per-attempt),</li>\n<li>auth: attach <code>Authorization: Bearer …</code> here (one line) when real DigiD lands,</li>\n<li>retry/backoff: wrap the pipe with rxjs <code>retry({ count, delay })</code> here.</li>\n</ul>\n",
                "args": [
                    {
                        "name": "http",
                        "type": "HttpClient",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "jsdoctags": [
                    {
                        "name": "http",
                        "type": "HttpClient",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "insertPassages",
                "file": "src/app/brief/domain/brief.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "sectionKey",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "passages",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Brief",
                "jsdoctags": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "sectionKey",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "passages",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "isAuthenticated",
                "file": "src/app/auth/domain/session.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Session",
                "jsdoctags": [
                    {
                        "name": "s",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "isBlockEmpty",
                "file": "src/app/shared/kernel/rich-text.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>True when the block carries no visible content (used for &quot;required section empty&quot;).</p>\n",
                "args": [
                    {
                        "name": "block",
                        "type": "RichTextBlock",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "boolean",
                "jsdoctags": [
                    {
                        "name": "block",
                        "type": "RichTextBlock",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "isChip",
                "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "node",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "HTMLElement",
                "jsdoctags": [
                    {
                        "name": "node",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "isEditable",
                "file": "src/app/brief/domain/brief.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Edits are allowed only in these statuses; editing a rejected letter reopens it.</p>\n",
                "args": [
                    {
                        "name": "status",
                        "type": "BriefStatus",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "boolean",
                "jsdoctags": [
                    {
                        "name": "status",
                        "type": "BriefStatus",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "isHerregistratieEligible",
                "file": "src/app/registratie/domain/registration.policy.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>A registration may apply for herregistratie only while active and within the\nwindow before its deadline. A struck-off or suspended registration may not.\nSERVER-OWNED RULE: this now runs on the backend (BFF), which ships the result\nas <code>decisions.eligibleForHerregistratie</code> in the dashboard view. Kept here as\nthe reference implementation + unit test; the frontend no longer calls it.</p>\n",
                "args": [
                    {
                        "name": "reg",
                        "type": "Registration",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "today",
                        "type": "Date",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "windowMonths",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "12"
                    }
                ],
                "returnType": "boolean",
                "jsdoctags": [
                    {
                        "name": "reg",
                        "type": "Registration",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "today",
                        "type": "Date",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "windowMonths",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "12",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "isSectionEditable",
                "file": "src/app/brief/domain/brief.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>A section accepts edits only when it is not a locked (predefined) template section.</p>\n",
                "args": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "sectionKey",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "boolean",
                "jsdoctags": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "sectionKey",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "isStatusConsistent",
                "file": "src/app/registratie/domain/registration.policy.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Invariant check used in tests/demos: a non-active status must not carry a\nherregistratie date. The union already enforces this structurally; this is\nthe runtime statement of the same rule.</p>\n",
                "args": [
                    {
                        "name": "status",
                        "type": "RegistrationStatus",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "boolean",
                "jsdoctags": [
                    {
                        "name": "status",
                        "type": "RegistrationStatus",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "kiesDiploma",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Pick a DUO diploma; the beroep is derived from it and the applicable policy\nquestions (<code>vraagIds</code>) come with it (both server-computed, passed in).</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "diplomaId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "beroep",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "vraagIds",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RegistratieState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "diplomaId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "beroep",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "vraagIds",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "kiesHandmatig",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Switch to manual diploma entry: the diploma isn&#39;t in DUO, so the MAXIMAL\npolicy-question set applies and the entry is flagged handmatig/unverified. The\nberoep is declared separately (declareerBeroep).</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "vraagIds",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RegistratieState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "vraagIds",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "lageUren",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>True when NL-hours are low enough that the scholing question must be answered.\nThe threshold is passed in (server-owned), not hardcoded.</p>\n",
                "args": [
                    {
                        "name": "a",
                        "type": "Answers",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "scholingThreshold",
                        "type": "unknown",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "SCHOLING_THRESHOLD_DEFAULT"
                    }
                ],
                "returnType": "boolean",
                "jsdoctags": [
                    {
                        "name": "a",
                        "type": "Answers",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "scholingThreshold",
                        "type": "unknown",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "SCHOLING_THRESHOLD_DEFAULT",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "lintPlaceholders",
                "file": "src/app/brief/domain/placeholders.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Lint one block against the template&#39;s placeholder set. Pure: given the same\ncontent + valid set + blockId it always returns the same diagnostics, in\ndocument order. One diagnostic per node at most (most-severe wins).</p>\n",
                "args": [
                    {
                        "name": "content",
                        "type": "RichTextBlock",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "valid",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "blockId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Diagnostic[]",
                "jsdoctags": [
                    {
                        "name": "content",
                        "type": "RichTextBlock",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "valid",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "blockId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "map",
                "file": "src/app/shared/application/remote-data.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Transform the value inside a Success; pass other states through unchanged.</p>\n",
                "args": [
                    {
                        "name": "rd",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RemoteData<E, B>",
                "jsdoctags": [
                    {
                        "name": "rd",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "map2",
                "file": "src/app/shared/application/remote-data.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Combine two sources into one. Use this to merge e.g. a BIG-register call\nand a BRP call into a single state the page can render.</p>\n",
                "args": [
                    {
                        "name": "a",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "b",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RemoteData<E, R>",
                "jsdoctags": [
                    {
                        "name": "a",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "b",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "map3",
                "file": "src/app/shared/application/remote-data.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Combine three sources (built on map2).</p>\n",
                "args": [
                    {
                        "name": "a",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "b",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "c",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RemoteData<E, R>",
                "jsdoctags": [
                    {
                        "name": "a",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "b",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "c",
                        "type": "RemoteData",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "mapBlocks",
                "file": "src/app/brief/domain/brief.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Brief",
                "jsdoctags": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "mapSection",
                "file": "src/app/brief/domain/brief.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "sectionKey",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Brief",
                "jsdoctags": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "sectionKey",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "mapUpload",
                "file": "src/app/shared/upload/upload.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Map one upload&#39;s status, leaving the rest of the list untouched.</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "localId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "UploadState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "localId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "markOf",
                "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "el",
                        "type": "HTMLElement",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Mark | null",
                "jsdoctags": [
                    {
                        "name": "el",
                        "type": "HTMLElement",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "maskBsn",
                "file": "src/app/shared/ui/debug-state/mask.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Redact a BSN for the dev state view: keep the last 3 digits, mask the rest.</p>\n",
                "args": [
                    {
                        "name": "bsn",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "string",
                "jsdoctags": [
                    {
                        "name": "bsn",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "maskSession",
                "file": "src/app/shared/ui/debug-state/debug-state.component.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Session | null",
                "jsdoctags": [
                    {
                        "name": "s",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "maskTail",
                "file": "src/app/shared/ui/debug-state/mask.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Keep the last <code>keep</code> characters, mask the rest.</p>\n",
                "args": [
                    {
                        "name": "value",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "keep",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "string",
                "jsdoctags": [
                    {
                        "name": "value",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "keep",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "messageFor",
                "file": "src/app/brief/domain/placeholders.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "code",
                        "type": "DiagnosticCode",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "key",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true
                    }
                ],
                "returnType": "string",
                "jsdoctags": [
                    {
                        "name": "code",
                        "type": "DiagnosticCode",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "key",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true,
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "moveWithinSection",
                "file": "src/app/brief/domain/brief.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "blocks",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "blockId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "toIndex",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "LetterBlock[]",
                "jsdoctags": [
                    {
                        "name": "blocks",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "blockId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "toIndex",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "next",
                "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Advance one step, gating on that step&#39;s fields. Illegal elsewhere = no-op.</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "WizardState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "next",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "IntakeState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "next",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RegistratieState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "nextLocalIndex",
                "file": "src/app/brief/domain/brief.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Next <code>local-N</code> block id — DERIVED from existing ids (max + 1), not a stored counter.</p>\n",
                "args": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "number",
                "jsdoctags": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "nodeToDto",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "n",
                        "type": "RichTextNode",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RichTextNodeDto",
                "jsdoctags": [
                    {
                        "name": "n",
                        "type": "RichTextNode",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseAanvraagStatus",
                "file": "src/app/registratie/infrastructure/applications.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Trust-boundary parse of the status union — the tag drives which fields must exist.</p>\n",
                "args": [
                    {
                        "name": "s",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, AanvraagStatus>",
                "jsdoctags": [
                    {
                        "name": "s",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseApplicationDetail",
                "file": "src/app/registratie/infrastructure/applications.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "json",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, AanvraagDetail>",
                "jsdoctags": [
                    {
                        "name": "json",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseApplications",
                "file": "src/app/registratie/infrastructure/applications.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "json",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, Aanvraag[]>",
                "jsdoctags": [
                    {
                        "name": "json",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseApplicationSummary",
                "file": "src/app/registratie/infrastructure/applications.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "json",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, Aanvraag>",
                "jsdoctags": [
                    {
                        "name": "json",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseBigNummer",
                "file": "src/app/registratie/domain/value-objects/big-nummer.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "raw",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, BigNummer>",
                "jsdoctags": [
                    {
                        "name": "raw",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseBlock",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "dto",
                        "type": "LetterBlockDto",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, LetterBlock>",
                "jsdoctags": [
                    {
                        "name": "dto",
                        "type": "LetterBlockDto",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseBlockContent",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "dto",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, RichTextBlock>",
                "jsdoctags": [
                    {
                        "name": "dto",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseBrief",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "dto",
                        "type": "BriefDto",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, Brief>",
                "jsdoctags": [
                    {
                        "name": "dto",
                        "type": "BriefDto",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseBriefView",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "dto",
                        "type": "BriefViewDto",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, BriefView>",
                "jsdoctags": [
                    {
                        "name": "dto",
                        "type": "BriefViewDto",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseBrpAddress",
                "file": "src/app/registratie/infrastructure/brp.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Trust-boundary parse: validate the untrusted response shape. &quot;Geen adres&quot; is a\nvalid outcome (gevonden: false), not a malformed response. ponytail: hand-written;\nreach for a schema lib once the contract count grows.</p>\n",
                "args": [
                    {
                        "name": "json",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, BrpAddressDto>",
                "jsdoctags": [
                    {
                        "name": "json",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseCommon",
                "file": "src/app/registratie/infrastructure/applications.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "dto",
                        "type": "ApplicationSummaryDto",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, Aanvraag>",
                "jsdoctags": [
                    {
                        "name": "dto",
                        "type": "ApplicationSummaryDto",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseDashboardView",
                "file": "src/app/registratie/infrastructure/dashboard-view.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Trust-boundary parse: validate the untrusted response shape and map the DTO\nonto our own domain model. Hand-written on purpose — no Zod for a single\ncontract. ponytail: reach for a schema lib once the contract count grows.</p>\n",
                "args": [
                    {
                        "name": "json",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, DashboardView>",
                "jsdoctags": [
                    {
                        "name": "json",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseDuoLookup",
                "file": "src/app/registratie/infrastructure/duo.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Trust-boundary parse: validate the untrusted response shape (diplomas, each\nwith derived beroep + policy questions, plus the manual-entry fallback).</p>\n",
                "args": [
                    {
                        "name": "json",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, DuoLookupDto>",
                "jsdoctags": [
                    {
                        "name": "json",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseEmail",
                "file": "src/app/registratie/domain/value-objects/email.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "raw",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, Email>",
                "jsdoctags": [
                    {
                        "name": "raw",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseNode",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "dto",
                        "type": "RichTextNodeDto",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, RichTextNode>",
                "jsdoctags": [
                    {
                        "name": "dto",
                        "type": "RichTextNodeDto",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parsePassage",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "dto",
                        "type": "LibraryPassageDto",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, LibraryPassage>",
                "jsdoctags": [
                    {
                        "name": "dto",
                        "type": "LibraryPassageDto",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parsePlaceholderDef",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "dto",
                        "type": "PlaceholderDefDto",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, PlaceholderDef>",
                "jsdoctags": [
                    {
                        "name": "dto",
                        "type": "PlaceholderDefDto",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parsePostcode",
                "file": "src/app/registratie/domain/value-objects/postcode.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "raw",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, Postcode>",
                "jsdoctags": [
                    {
                        "name": "raw",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseQuestions",
                "file": "src/app/registratie/infrastructure/duo.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "json",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "[] | null",
                "jsdoctags": [
                    {
                        "name": "json",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseSection",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "dto",
                        "type": "LetterSectionDto",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, LetterSection>",
                "jsdoctags": [
                    {
                        "name": "dto",
                        "type": "LetterSectionDto",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseStatus",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "dto",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, BriefStatus>",
                "jsdoctags": [
                    {
                        "name": "dto",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "parseUren",
                "file": "src/app/registratie/domain/value-objects/uren.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "raw",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<string, Uren>",
                "jsdoctags": [
                    {
                        "name": "raw",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "placeholderKeysIn",
                "file": "src/app/shared/kernel/rich-text.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Every placeholder key used in a block, in document order (duplicates kept — the\ncaller dedupes when it wants a set).</p>\n",
                "args": [
                    {
                        "name": "block",
                        "type": "RichTextBlock",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "string[]",
                "jsdoctags": [
                    {
                        "name": "block",
                        "type": "RichTextBlock",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "prefillAdres",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Prefill the address from a BRP lookup and flag its origin (PRD §7).</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "straat",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "postcode",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "woonplaats",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RegistratieState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "straat",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "postcode",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "woonplaats",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "problemDetail",
                "file": "src/app/shared/infrastructure/api-error.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Extract a human-readable message from a rejected API call. A 4xx/5xx with a\nProblemDetails body (RFC 7807) is thrown by the generated client as the parsed\nobject; anything else falls back to the given message.</p>\n",
                "args": [
                    {
                        "name": "e",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "fallback",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "string",
                "jsdoctags": [
                    {
                        "name": "e",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "fallback",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "problemFieldErrors",
                "file": "src/app/shared/infrastructure/api-error.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>SEAM (G4): map a server validation envelope to field-level errors.</p>\n<p>ASP.NET&#39;s ValidationProblemDetails carries <code>errors: { field: string[] }</code>. The\nbackend today returns only <code>detail</code> (one banner message), so this returns <code>{}</code>.\nWhen the backend starts sending <code>errors</code>, a machine&#39;s <code>SubmitFailed</code> handler can\nmerge this into its own <code>errors</code> map — the field-keyed shape the wizards already\nrender — so a rejection shows inline per field, not just as a banner. The\nconsumer hook is the only thing left to wire; the contract boundary lives here.</p>\n",
                "args": [
                    {
                        "name": "e",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Record<string, string>",
                "jsdoctags": [
                    {
                        "name": "e",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "provideApiClient",
                "file": "src/app/shared/infrastructure/api-client.provider.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Provide a root ApiClient that talks through HttpClient. Base URL comes from the\nenvironment (relative &#39;&#39; in dev → proxy; configurable per deployment).</p>\n",
                "args": [],
                "returnType": "Provider"
            },
            {
                "name": "readBlock",
                "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "root",
                        "type": "HTMLElement",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RichTextBlock",
                "jsdoctags": [
                    {
                        "name": "root",
                        "type": "HTMLElement",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "readLine",
                "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Read one line element (<p>, <div>, or <li>) into a paragraph&#39;s nodes.</p>\n",
                "args": [
                    {
                        "name": "el",
                        "type": "HTMLElement",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "literal type",
                "jsdoctags": [
                    {
                        "name": "el",
                        "type": "HTMLElement",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "redactProfile",
                "file": "src/app/shared/ui/debug-state/mask.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Data minimisation for the dev &quot;show the Model&quot; panel: keep the structural /\ndecision-relevant fields (status, beroep, dates of registration) but redact\ndirect personal identifiers (name, address, date of birth) and mask the BIG\nnumber. The panel is for inspecting state SHAPE, never for reading PII.</p>\n",
                "args": [
                    {
                        "name": "p",
                        "type": "BigProfile",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "unknown",
                "jsdoctags": [
                    {
                        "name": "p",
                        "type": "BigProfile",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "reduce",
                "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "m",
                        "type": "WizardMsg",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "WizardState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "m",
                        "type": "WizardMsg",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "reduce",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "m",
                        "type": "IntakeMsg",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "IntakeState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "m",
                        "type": "IntakeMsg",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "reduce",
                "file": "src/app/registratie/domain/change-request.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "State",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "m",
                        "type": "Msg",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "State",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "State",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "m",
                        "type": "Msg",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "reduce",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "m",
                        "type": "RegistratieMsg",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RegistratieState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "m",
                        "type": "RegistratieMsg",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "reduce",
                "file": "src/app/brief/domain/brief.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "BriefState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "m",
                        "type": "BriefMsg",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "BriefState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "BriefState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "m",
                        "type": "BriefMsg",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "reduceUpload",
                "file": "src/app/shared/upload/upload.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "m",
                        "type": "UploadMsg",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "UploadState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "m",
                        "type": "UploadMsg",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "rejectReason",
                "file": "src/app/shared/upload/upload.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>FE format-validation (never authority — the server re-validates). Returns the\nrejection reason for one file, or null if it passes the category&#39;s type/size.</p>\n",
                "args": [
                    {
                        "name": "cat",
                        "type": "DocumentCategory",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "file",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "\"type\" | \"size\" | null",
                "jsdoctags": [
                    {
                        "name": "cat",
                        "type": "DocumentCategory",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "file",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "renderInto",
                "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "root",
                        "type": "HTMLElement",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "block",
                        "type": "RichTextBlock",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "labelFor",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "autoFor",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true
                    }
                ],
                "returnType": "void",
                "jsdoctags": [
                    {
                        "name": "root",
                        "type": "HTMLElement",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "block",
                        "type": "RichTextBlock",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "labelFor",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "autoFor",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true,
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "renderNode",
                "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "node",
                        "type": "RichTextNode",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "labelFor",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "doc",
                        "type": "Document",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "autoFor",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true
                    }
                ],
                "returnType": "Node",
                "jsdoctags": [
                    {
                        "name": "node",
                        "type": "RichTextNode",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "labelFor",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "doc",
                        "type": "Document",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "autoFor",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true,
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "requiredCategoriesSatisfied",
                "file": "src/app/shared/upload/upload.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "boolean",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "resolve",
                "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Resolve the async submit. Only meaningful while Submitting.</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "r",
                        "type": "Result",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "WizardState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "r",
                        "type": "Result",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "resolve",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "r",
                        "type": "Result",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "IntakeState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "r",
                        "type": "Result",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "resolve",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "r",
                        "type": "Result",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RegistratieState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "r",
                        "type": "Result",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "restore",
                "file": "src/app/auth/application/session.store.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Restore a persisted session (best-effort; corrupt entry → logged out).\nG2: validate the shape before trusting it. G1: the BSN is never persisted\n(see the effect below), so a restored session carries an empty one — it is\nunused after login; only <code>naam</code> is shown in the chrome.</p>\n",
                "args": [],
                "returnType": "Session | null"
            },
            {
                "name": "runSubmit",
                "file": "src/app/shared/application/submit.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Run a mutating API call and fold it into a <code>Result</code> — the one place the\ntry/catch + ProblemDetails-mapping lives, so every <code>submit-*</code> command is just\nits own payload mapping. The backend re-validates and returns a 422\nProblemDetails on rejection, surfaced here as the error string.</p>\n",
                "args": [
                    {
                        "name": "fn",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "fallback",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Promise<Result<string, T>>",
                "jsdoctags": [
                    {
                        "name": "fn",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "fallback",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "sectionKeyOfBlock",
                "file": "src/app/brief/domain/brief.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The section a block currently lives in, or undefined if the block is gone.</p>\n",
                "args": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "blockId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "string | undefined",
                "jsdoctags": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "blockId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "sectionToDto",
                "file": "src/app/brief/infrastructure/brief.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "LetterSection",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "LetterSectionDto",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "LetterSection",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "setAnswer",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "key",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "value",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "IntakeState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "key",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "value",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "setAntwoord",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "vraagId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "value",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RegistratieState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "vraagId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "value",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "setCorrespondentie",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "value",
                        "type": "Correspondentie",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RegistratieState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "value",
                        "type": "Correspondentie",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "setField",
                "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Update one draft field while editing; ignored in any other state.</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "key",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "value",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "WizardState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "key",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "value",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "setField",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "key",
                        "type": "DraftField",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "value",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RegistratieState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "key",
                        "type": "DraftField",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "value",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "setPolicy",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Apply a server-owned policy value (e.g. the scholing threshold).</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "scholingThreshold",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "IntakeState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "scholingThreshold",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "severityOf",
                "file": "src/app/brief/domain/placeholders.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p><code>error</code> blocks save (author time) and send (send time); <code>warning</code> is surfaced but allowed.</p>\n",
                "args": [
                    {
                        "name": "code",
                        "type": "DiagnosticCode",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "DiagnosticSeverity",
                "jsdoctags": [
                    {
                        "name": "code",
                        "type": "DiagnosticCode",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "simulateUpload",
                "file": "src/app/shared/upload/upload.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Demo-only (dev): the real XHR POST finishes instantly for metadata, so progress\nand failure can&#39;t otherwise be shown. Drives the progress bar over ~2.5s, then\nsucceeds (<code>upload-slow</code>) or fails (<code>upload-fail</code>). ponytail: timer-based, cancel\nvia the returned handle; no network.</p>\n",
                "args": [
                    {
                        "name": "scenario",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "onProgress",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "XhrUploadHandle",
                "jsdoctags": [
                    {
                        "name": "scenario",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "onProgress",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "statusColor",
                "file": "src/app/registratie/domain/registration.policy.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Brand colour token for a status. assertNever forces a colour for every new\nstatus variant at compile time.</p>\n",
                "args": [
                    {
                        "name": "tag",
                        "type": "StatusTag",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "string",
                "jsdoctags": [
                    {
                        "name": "tag",
                        "type": "StatusTag",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "statusLabel",
                "file": "src/app/registratie/domain/registration.policy.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Domain logic for a registration — pure functions, NO Angular. This is where\n&quot;what the business rules say&quot; lives, separate from &quot;how it looks&quot; (UI) and\n&quot;where the data comes from&quot; (infrastructure). Keeping it framework-free means\nit is trivial to read and unit-test.</p>\n",
                "args": [
                    {
                        "name": "tag",
                        "type": "StatusTag",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "string",
                "jsdoctags": [
                    {
                        "name": "tag",
                        "type": "StatusTag",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "submit",
                "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Step 3 submit: parse everything + require documents; Submitting only with Valid.</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "WizardState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "submit",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "IntakeState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "IntakeState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "submit",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RegistratieState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "tasksFromProfile",
                "file": "src/app/registratie/domain/tasks.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Derive the open tasks for a professional (pure). Eligibility is the server&#39;s\ndecision (<code>decisions.eligibleForHerregistratie</code>), passed in — the FE renders it,\nit does not recompute the rule (ADR-0001). The deadline is still formatted\nclient-side for the task copy (presentation, not a rule).</p>\n",
                "args": [
                    {
                        "name": "reg",
                        "type": "Registration",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "eligibleForHerregistratie",
                        "type": "boolean",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "PortalTask[]",
                "jsdoctags": [
                    {
                        "name": "reg",
                        "type": "Registration",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "eligibleForHerregistratie",
                        "type": "boolean",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "throwException",
                "file": "src/app/shared/infrastructure/api-client.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "message",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "status",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "response",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "headers",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "result",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true
                    }
                ],
                "returnType": "any",
                "jsdoctags": [
                    {
                        "name": "message",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "status",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "response",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "headers",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "result",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true,
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "toAantekening",
                "file": "src/app/registratie/infrastructure/big-register.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Map the wire DTO (all fields optional) onto our domain type.</p>\n",
                "args": [
                    {
                        "name": "n",
                        "type": "AantekeningDto",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Aantekening",
                "jsdoctags": [
                    {
                        "name": "n",
                        "type": "AantekeningDto",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "toCategory",
                "file": "src/app/shared/upload/upload.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Wire DTO (all fields optional) → domain.</p>\n",
                "args": [
                    {
                        "name": "c",
                        "type": "DocumentCategoryDto",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "DocumentCategory",
                "jsdoctags": [
                    {
                        "name": "c",
                        "type": "DocumentCategoryDto",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "toStatusItem",
                "file": "src/app/shared/upload/upload.adapter.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "s",
                        "type": "UploadStatusItemDto",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "StatusItem",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "UploadStatusItemDto",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "trailFor",
                "file": "src/app/shared/layout/breadcrumb/breadcrumb-trail.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Build the breadcrumb trail for a router url (query/fragment stripped).\nReturns [] for unknown routes (e.g. /login) so the bar can hide itself.</p>\n",
                "args": [
                    {
                        "name": "url",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "BreadcrumbItem[]",
                "jsdoctags": [
                    {
                        "name": "url",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "transition",
                "file": "src/app/brief/domain/brief.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>A guarded status transition: only fires from <code>from</code>, and only if <code>guard</code> passes.</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "BriefState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "from",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "next",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "guard",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "() => true"
                    }
                ],
                "returnType": "BriefState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "BriefState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "from",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "next",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "guard",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "() => true",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "unresolvedPlaceholders",
                "file": "src/app/brief/domain/brief.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Manual (non-auto-resolvable) placeholder keys still present, deduped. These are the\n<code>unresolved-at-send</code> warnings, surfaced as a completeness list.</p>\n",
                "args": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "string[]",
                "jsdoctags": [
                    {
                        "name": "brief",
                        "type": "Brief",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "upload",
                "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Route an upload sub-message through the pure upload reducer (Editing only).</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "msg",
                        "type": "UploadMsg",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "WizardState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "WizardState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "msg",
                        "type": "UploadMsg",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "upload",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Route an upload sub-message through the pure upload reducer (Invullen only).</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "msg",
                        "type": "UploadMsg",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "RegistratieState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "RegistratieState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "msg",
                        "type": "UploadMsg",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "validate",
                "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Parse every field; on success hand back a Valid, else the per-field errors.</p>\n",
                "args": [
                    {
                        "name": "draft",
                        "type": "Draft",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "upload",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<StepErrors, Valid>",
                "jsdoctags": [
                    {
                        "name": "draft",
                        "type": "Draft",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "upload",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "validate",
                "file": "src/app/registratie/domain/change-request.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Parse via the value objects; on success hand back a Valid, else per-field errors.</p>\n",
                "args": [
                    {
                        "name": "draft",
                        "type": "Draft",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<Errors, Valid>",
                "jsdoctags": [
                    {
                        "name": "draft",
                        "type": "Draft",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "validateAll",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Parse the whole questionnaire into a ValidIntake (called on submit).</p>\n",
                "args": [
                    {
                        "name": "a",
                        "type": "Answers",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "scholingThreshold",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<Errors, ValidIntake>",
                "jsdoctags": [
                    {
                        "name": "a",
                        "type": "Answers",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "scholingThreshold",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "validateAll",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Parse the whole wizard into a ValidRegistratie (called on submit).</p>\n",
                "args": [
                    {
                        "name": "d",
                        "type": "Draft",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "upload",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<Errors, ValidRegistratie>",
                "jsdoctags": [
                    {
                        "name": "d",
                        "type": "Draft",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "upload",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "validateStep",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Validate every question currently visible in ONE step. Errors keyed per field.</p>\n",
                "args": [
                    {
                        "name": "step",
                        "type": "StepId",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "a",
                        "type": "Answers",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "scholingThreshold",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<Errors, void>",
                "jsdoctags": [
                    {
                        "name": "step",
                        "type": "StepId",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "a",
                        "type": "Answers",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "scholingThreshold",
                        "type": "number",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "validateStep",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Validate every question currently visible in ONE step. Errors keyed per field.</p>\n",
                "args": [
                    {
                        "name": "step",
                        "type": "StepId",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "d",
                        "type": "Draft",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "upload",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Result<Errors, void>",
                "jsdoctags": [
                    {
                        "name": "step",
                        "type": "StepId",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "d",
                        "type": "Draft",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "upload",
                        "type": "UploadState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "whenTag",
                "file": "src/app/shared/kernel/fp.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Narrow a tagged union to one variant by its <code>tag</code>, or null. The single place\nthe cast lives — TS can&#39;t narrow through a runtime tag argument, so callers get\n<code>whenTag(state, &#39;Editing&#39;)?.foo</code> instead of repeating <code>as Extract&lt;…&gt;</code>.</p>\n",
                "args": [
                    {
                        "name": "u",
                        "type": "U",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "tag",
                        "type": "K",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Extract | null",
                "jsdoctags": [
                    {
                        "name": "u",
                        "type": "U",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "tag",
                        "type": "K",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "withEdit",
                "file": "src/app/brief/domain/brief.machine.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Apply an edit to the brief, guarded by status. A rejected letter reopens to draft.</p>\n",
                "args": [
                    {
                        "name": "s",
                        "type": "BriefState",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "BriefState",
                "jsdoctags": [
                    {
                        "name": "s",
                        "type": "BriefState",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "f",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            }
        ],
        "typealiases": [
            {
                "name": "AantekeningType",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"Specialisme\" | \"Aantekening\"",
                "file": "src/app/registratie/domain/registration.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>A note is either a recognised specialism or a plain annotation — a closed set,\nnot an open string, so a typo can&#39;t slip through.</p>\n",
                "kind": 193
            },
            {
                "name": "AanvraagStatus",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type | literal type",
                "file": "src/app/registratie/domain/aanvraag.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "AanvraagType",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"registratie\" | \"herregistratie\" | \"intake\"",
                "file": "src/app/registratie/domain/aanvraag.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>An application (aanvraag) as the frontend sees it — the parsed, domain-side view\nof the backend-owned aggregate (see backend ApplicationStore + PRD 0001). Pure\ntypes, no Angular. Lives in <code>registratie</code> because the dashboard (here) is the\nconsumer and the downstream wizards (<code>herregistratie → registratie</code>) produce them.</p>\n<p>The status is a discriminated union so illegal states are unrepresentable — same\nreflex as RemoteData. The server computes which tag applies (auto-approval on\nread); the FE renders it, it does not recompute the lifecycle.</p>\n",
                "kind": 193
            },
            {
                "name": "AdresErrors",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "Partial<Record<AdresValue, string>>",
                "file": "src/app/registratie/ui/address-fields/address-fields.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 184
            },
            {
                "name": "AdresHerkomst",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"brp\" | \"handmatig\"",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Where a piece of data came from — recorded on the aggregate (PRD §5).</p>\n",
                "kind": 193
            },
            {
                "name": "AlertType",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"info\" | \"ok\" | \"warning\" | \"error\"",
                "file": "src/app/shared/ui/alert/alert.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "AlertType",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"info\" | \"ok\" | \"warning\" | \"error\"",
                "file": "src/app/shared/ui/upload/upload-status-banner/upload-status-banner.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "BannerType",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"info\" | \"warning\" | \"error\"",
                "file": "src/app/shared/ui/upload/upload-status-banner/upload-status-banner.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "BigNummer",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "Brand<string | BigNummer>",
                "file": "src/app/registratie/domain/value-objects/big-nummer.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Value object: a BIG registration number — 11 digits.</p>\n",
                "kind": 184
            },
            {
                "name": "BlockAction",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"resume\" | \"cancel\" | \"viewDocuments\"",
                "file": "src/app/registratie/domain/block-actions.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>What a dashboard &quot;Mijn aanvragen&quot; block offers per status. The badge itself\nfollows directly from <code>status.tag</code> (the UI maps tag → colour + label), so this\npure function owns only the <em>actions</em> decision.</p>\n",
                "kind": 193
            },
            {
                "name": "Brand",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "unknown",
                "file": "src/app/shared/kernel/fp.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Nominal typing: Brand&lt;string, &#39;Postcode&#39;&gt; is assignable from a plain string\nonly through an explicit cast — so a smart constructor is the only minter.</p>\n",
                "kind": 194
            },
            {
                "name": "BriefMsg",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type",
                "file": "src/app/brief/domain/brief.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "BriefState",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type",
                "file": "src/app/brief/domain/brief.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The letter composition state machine (Model + Msg + pure reduce), modeled on\n<code>herregistratie/domain/intake.machine.ts</code>.</p>\n<p>Two invariants are enforced <em>here</em>, not in the UI:</p>\n<ul>\n<li>Status transitions are total and guarded — an out-of-order transition Msg is a\nno-op (<code>draft→submitted→approved/rejected→draft</code>, <code>approved→sent</code>).</li>\n<li>Edits are only possible in <code>draft</code>/<code>rejected</code>; editing a <code>rejected</code> letter flips\nit back to <code>draft</code>. Sections can never be added, removed, or reordered — there\nis no Msg for it, so it is unrepresentable.</li>\n</ul>\n<p>Role (drafter vs approver) is NOT a reducer concern: the UI derives <code>editable</code> from\nrole+status and simply doesn&#39;t dispatch edits when the actor may not edit. The\nreducer guards the status invariant; the UI guards the role invariant.</p>\n<p>Note: there is no <code>PlaceholderInserted</code> Msg. The editor inserts a placeholder NODE\nat the caret and emits the whole new block via <code>BlockContentEdited</code>; its insert menu\nonly offers keys from <code>brief.placeholders</code>, so inserting an unknown key is\nstructurally impossible (a pasted <code>{{…}}</code> is caught by the linter as <code>malformed</code>).</p>\n",
                "kind": 193
            },
            {
                "name": "BriefStatus",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type | literal type | literal type",
                "file": "src/app/brief/domain/brief.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The approval state machine as a sum type — transitions are total and guarded in\n<code>brief.machine.ts</code>; illegal transitions are unrepresentable.</p>\n",
                "kind": 193
            },
            {
                "name": "Correspondentie",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"email\" | \"post\"",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "DeliveryChannel",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"digital\" | \"post\"",
                "file": "src/app/shared/upload/upload.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "DiagnosticCode",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"malformed\" | \"unknown-placeholder\" | \"not-fillable\" | \"deprecated\" | \"unresolved-at-send\"",
                "file": "src/app/brief/domain/placeholders.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "DiagnosticSeverity",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"error\" | \"warning\"",
                "file": "src/app/brief/domain/placeholders.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "DiplomaHerkomst",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"duo\" | \"handmatig\"",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "Dispatch",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "function",
                "file": "src/app/shared/upload/upload-shell.service.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 185
            },
            {
                "name": "DraftField",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"straat\" | \"postcode\" | \"woonplaats\" | \"email\"",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Text fields settable via SetField.</p>\n",
                "kind": 193
            },
            {
                "name": "Email",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "Brand<string | Email>",
                "file": "src/app/registratie/domain/value-objects/email.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Value object: an e-mail address. &quot;Parse, don&#39;t validate&quot; — an Email is a\ndistinct type from a raw string, mintable only via parseEmail, so holding one\nis proof it is well-formed. Format-only check (the FE keeps format validation\nfor instant feedback; the backend stays the authority — see ADR-0001).</p>\n",
                "kind": 184
            },
            {
                "name": "Err",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "Error | undefined",
                "file": "src/app/registratie/application/applications.store.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "Err",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "Error | undefined",
                "file": "src/app/registratie/application/big-profile.store.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "Err",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "Error | undefined",
                "file": "src/app/registratie/application/registratie-lookup.store.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "Errors",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "Partial<Record<Answers, string>>",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Per-field error map: one message per question, since a step holds several.</p>\n",
                "kind": 184
            },
            {
                "name": "Errors",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "Partial<Record<Draft, string>>",
                "file": "src/app/registratie/domain/change-request.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 184
            },
            {
                "name": "IntakeMsg",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "IntakeState",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type | literal type",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "JaNee",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"ja\" | \"nee\"",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>A FIXED 3-step wizard with progressive disclosure. The steps never change in\nnumber (always <code>STEPS</code>); instead, follow-up questions appear <em>inline within a\nstep</em> depending on earlier answers — answer &quot;buiten Nederland gewerkt? → ja&quot;\nand the country/hours questions reveal in the same step; report few hours and\nthe scholing-question reveals inside the &#39;werk&#39; step. &quot;Is this field required\nright now&quot; is a pure function (<code>validateStep</code>/<code>lageUren</code>), so it&#39;s trivial to\ntest and impossible to get out of sync with the data.</p>\n",
                "kind": 193
            },
            {
                "name": "LetterBlock",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type",
                "file": "src/app/brief/domain/brief.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>A block inside a letter section: a frozen passage snapshot, or free text.</p>\n",
                "kind": 193
            },
            {
                "name": "Mark",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"bold\" | \"italic\" | \"underline\"",
                "file": "src/app/shared/kernel/rich-text.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Rich text as a <em>serialisable value</em>, not opaque HTML.</p>\n<p>A block is a node tree. Because a placeholder is a first-class NODE (not a\n<code>{{token}}</code> substring hidden inside a string), highlighting it, inserting it,\nand linting it are all pure functions over data — no regex over markup. This\nis the whole reason the letter feature stays in the &quot;impossible states&quot; style:\nthe value the app holds is always well-shaped, and the imperative editor is\nquarantined behind one component that converts to/from this tree.</p>\n",
                "kind": 193
            },
            {
                "name": "Msg",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type | literal type | literal type | literal type | literal type",
                "file": "src/app/registratie/domain/change-request.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "PassageScope",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"global\" | \"beroep\"",
                "file": "src/app/brief/domain/brief.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The <code>Brief</code> (letter) entity and its derived selectors.</p>\n<p>A letter has a FIXED section structure (from a template, server-instantiated); the\ndrafter fills a skeleton, never reorders sections. Each block is either a frozen\nsnapshot of a library passage (provenance kept) or free text. Everything the UI\nneeds beyond the stored shape — diagnostics, unresolved placeholders, whether it\ncan be submitted — is DERIVED here, never stored.</p>\n",
                "kind": 193
            },
            {
                "name": "Postcode",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "Brand<string | Postcode>",
                "file": "src/app/registratie/domain/value-objects/postcode.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Value object: a Dutch postcode. &quot;Parse, don&#39;t validate&quot; — a Postcode is a\ndistinct type from a raw string, mintable only via parsePostcode, so holding\none is proof it is well-formed.</p>\n",
                "kind": 184
            },
            {
                "name": "PreviewSegment",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type",
                "file": "src/app/brief/ui/letter-preview/letter-preview.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>A run of consecutive lines to render together: a list (bullet/number) or a single plain line.</p>\n",
                "kind": 188
            },
            {
                "name": "RegistratieMsg",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "RegistratieState",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type | literal type",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "RegistrationStatus",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type",
                "file": "src/app/registratie/domain/registration.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Registration status as a discriminated union: each variant owns exactly the\ndata that makes sense for it. Only an active (Geregistreerd) registration has\na herregistratie date; a struck-off (Doorgehaald) one cannot carry one. The\nold flat interface allowed that impossible combination — this makes it\nunrepresentable.</p>\n",
                "kind": 193
            },
            {
                "name": "RegistrationStatusDto",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type",
                "file": "src/app/registratie/contracts/dashboard-view.dto.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>WIRE CONTRACT for the dashboard screen — the &quot;BFF-lite&quot; response.</p>\n<p>PURE wire shapes: this file imports NOTHING (CLAUDE.md §1, ADR-0001). Enums are\ninlined string-literal unions that describe the wire, not the domain. The\nadapter&#39;s <code>parseDashboardView</code> validates this untrusted shape and MAPS it onto\nthe FE domain model (Registration/Person/BigProfile) — that map is the\ndecoupling seam: the wire can change without the domain following.</p>\n<p>In production these types are GENERATED from the OpenAPI/TypeSpec spec (one\nsource of truth for both sides), and the <code>decisions</code> block is computed BY THE\nBACKEND — never recomputed on the client. The frontend renders decisions; it\ndoes not own the rules. See docs/architecture/0001-bff-lite-decision-dtos.md.</p>\n<p>One screen-shaped call replaces the previous three (BIG-register + BRP + …),\nso the page always sees one consistent snapshot instead of three independently\nloading/erroring resources.</p>\n",
                "kind": 193
            },
            {
                "name": "RemoteData",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type | literal type",
                "file": "src/app/shared/application/remote-data.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The four mutually-exclusive states of an async fetch, as a tagged union.\nCrucially the data lives ON the state: only <code>Failure</code> has an <code>error</code>, only\n<code>Success</code> has a <code>value</code>. &quot;Loaded but no value&quot; or &quot;error with stale value&quot;\nare unrepresentable — Richard Feldman&#39;s RemoteData.</p>\n",
                "kind": 193
            },
            {
                "name": "Result",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type",
                "file": "src/app/shared/kernel/fp.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>A computation that either succeeded with a value or failed with an error.\nPlain objects (no classes) to match the signal/httpResource ergonomics.</p>\n",
                "kind": 193
            },
            {
                "name": "RichTextNode",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type",
                "file": "src/app/shared/kernel/rich-text.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "Role",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"drafter\" | \"approver\"",
                "file": "src/app/shared/domain/role.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The two-person letter workflow&#39;s role: who is acting, a drafter or an approver.\nA pure domain type (no framework, no reading mechanism) — the <code>?role=</code> reader and\nthe X-Role header live in shared/infrastructure/role.ts. Consumers (brief.store,\nletter-composer) depend on this type, not on how the role is obtained.</p>\n",
                "kind": 193
            },
            {
                "name": "Scenario",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"default\" | \"slow\" | \"loading\" | \"empty\" | \"error\" | \"upload-slow\" | \"upload-fail\"",
                "file": "src/app/shared/infrastructure/scenario.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "State",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type | literal type",
                "file": "src/app/registratie/domain/change-request.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The change-request (adreswijziging) form as one tagged union — the SAME idiom\nas the wizards, just single-step. <code>draft</code>/<code>errors</code> exist only while Editing;\nSubmitting/Submitted/Failed carry the parsed <code>Valid</code>. Illegal states (submitting\nan invalid draft, a success screen with errors) are unrepresentable.</p>\n",
                "kind": 193
            },
            {
                "name": "StatusTag",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "RegistrationStatus",
                "file": "src/app/registratie/domain/registration.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Just the discriminant — for atoms that only need the label/color.</p>\n",
                "kind": 200
            },
            {
                "name": "StepErrors",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "Partial<Record<unknown | \"documenten\", string>>",
                "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 184
            },
            {
                "name": "StepId",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"buitenland\" | \"werk\" | \"review\"",
                "file": "src/app/herregistratie/domain/intake.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The three fixed steps. Each step groups one or more questions.</p>\n",
                "kind": 193
            },
            {
                "name": "StepId",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"adres\" | \"beroep\" | \"controle\"",
                "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>A FIXED 3-step registration wizard. The steps never change in number (always\n<code>STEPS</code>): (1) adres + correspondentievoorkeur, (2) beroep o.b.v. diploma,\n(3) controle &amp; indienen. Follow-up questions appear <em>inline within a step</em>\n(e.g. choosing &#39;email&#39; reveals the e-mail field). &quot;Is this field required\nright now&quot; is a pure function (<code>validateStep</code>), so it is trivial to test and\nimpossible to get out of sync with the data. Invariants live here, not in the\nUI: the wizard reaches <code>Indienen</code> only when a complete <code>ValidRegistratie</code> parses.</p>\n",
                "kind": 193
            },
            {
                "name": "UploadMsg",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type",
                "file": "src/app/shared/upload/upload.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "UploadStatus",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type | literal type | literal type | literal type | literal type",
                "file": "src/app/shared/upload/upload.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Pure upload domain (no Angular). Reusable across wizards: the host wizard folds\n<code>UploadState</code> into its Model and delegates upload <code>Msg</code>s to <code>reduceUpload</code>.\nIllegal states are unrepresentable by construction; the few transitions a union\ncan&#39;t express (channel↔upload exclusivity, single-file categories) are enforced\nhere in the reducer. Effects live in the shell (upload-shell.service.ts).</p>\n",
                "kind": 193
            },
            {
                "name": "Uren",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "Brand<number | Uren>",
                "file": "src/app/registratie/domain/value-objects/uren.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Value object: a non-negative whole number of hours.</p>\n",
                "kind": 184
            },
            {
                "name": "Variant",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"primary\" | \"secondary\" | \"subtle\" | \"danger\"",
                "file": "src/app/shared/ui/button/button.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "WizardMsg",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type",
                "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Every event that can happen to the wizard, as one message type. The component\nsends a WizardMsg; <code>reduce</code> decides the next state. This is the Elm\nModel+Msg+update pattern: ONE pure function describes all state changes.</p>\n",
                "kind": 193
            },
            {
                "name": "WizardState",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type | literal type | literal type | literal type",
                "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The whole wizard as one tagged union. <code>step</code> and <code>errors</code> exist ONLY while\nEditing; Submitting/Submitted/Failed carry a <code>Valid</code> payload and nothing else.\nSo &quot;submitting while a field is invalid&quot; or &quot;showing the success screen with\nerrors set&quot; are unrepresentable — the bug class is gone by construction.</p>\n",
                "kind": 193
            },
            {
                "name": "WizardStatus",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"editing\" | \"submitting\" | \"submitted\" | \"failed\"",
                "file": "src/app/shared/layout/wizard-shell/wizard-shell.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            }
        ],
        "enumerations": [],
        "groupedVariables": {
            "src/app/registratie/infrastructure/applications.adapter.ts": [
                {
                    "name": "AANVRAAG_TYPES",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/registratie/infrastructure/applications.adapter.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "defaultValue": "['registratie', 'herregistratie', 'intake']"
                }
            ],
            "src/app/shared/upload/upload.machine.ts": [
                {
                    "name": "ACTIVE",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/upload/upload.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ReadonlyArray<unknown>",
                    "defaultValue": "['queued', 'uploading', 'complete']"
                },
                {
                    "name": "categoryOf",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/upload/upload.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(s: UploadState, categoryId: string) => s.categories.find((c) => c.categoryId === categoryId)"
                },
                {
                    "name": "find",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/upload/upload.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(s: UploadState, localId: string) => s.uploads.find((u) => u.localId === localId)"
                },
                {
                    "name": "inFlight",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/upload/upload.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(s: UploadState): Upload[] =>\n  s.uploads.filter((u) => u.status.type === 'queued' || u.status.type === 'uploading')",
                    "rawdescription": "Used by the shell to find what to poll on return: still-in-flight uploads.",
                    "description": "<p>Used by the shell to find what to poll on return: still-in-flight uploads.</p>\n"
                },
                {
                    "name": "initialUpload",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/upload/upload.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UploadState",
                    "defaultValue": "{\n  categories: [],\n  uploads: [],\n  deliveryChannel: {},\n  rejections: {},\n  backgroundSyncAvailable: false,\n}"
                },
                {
                    "name": "REJECTION_MESSAGES",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/upload/upload.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Record<\"type\" | \"size\" | \"multiple\", string>",
                    "defaultValue": "{\n  type: $localize`:@@upload.reject.type:Dit bestandstype is niet toegestaan voor deze categorie.`,\n  size: $localize`:@@upload.reject.size:Dit bestand is te groot.`,\n  multiple: $localize`:@@upload.reject.multiple:U kunt voor deze categorie maar één bestand uploaden.`,\n}"
                }
            ],
            "src/app/app.config.ts": [
                {
                    "name": "appConfig",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/app.config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ApplicationConfig",
                    "defaultValue": "{\n  providers: [\n    provideBrowserGlobalErrorListeners(),\n    provideRouter(\n      routes,\n      // Cross-fade page-to-page navigations only. A silent same-route nav — e.g.\n      // draft-sync stamping `?aanvraag=<id>` into the URL mid-wizard — must NOT\n      // animate: for the transition's duration Firefox's `::view-transition`\n      // overlay swallows pointer events (Chrome sets pointer-events:none, so it\n      // doesn't), which loses a click landing on it and makes the wizard's \"next\"\n      // button need a second click. Skip the transition when the route is unchanged.\n      withViewTransitions({\n        onViewTransitionCreated: ({ transition, from, to }) => {\n          // `from`/`to` are the ROOT snapshots (the shared shell), so descend to the\n          // leaf before comparing — otherwise every navigation looks \"same route\".\n          const leaf = (r: ActivatedRouteSnapshot) => {\n            while (r.firstChild) r = r.firstChild;\n            return r;\n          };\n          if (leaf(from).routeConfig === leaf(to).routeConfig) transition.skipTransition();\n        },\n      }),\n    ),\n    // Dev-only: the ?scenario= toggle must never reach a production build, where\n    // a query param could otherwise force errors on the live app.\n    provideHttpClient(withInterceptors(isDevMode() ? [scenarioInterceptor, roleInterceptor] : [])),\n    provideApiClient(),\n    { provide: SESSION_PORT, useExisting: SessionStore },\n    { provide: LOCALE_ID, useValue: 'nl' },\n  ]\n}"
                }
            ],
            "src/app/shared/ui/async/async.component.ts": [
                {
                    "name": "ASYNC",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/ui/async/async.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "[\n  AsyncComponent, AsyncLoadedDirective, AsyncLoadingDirective,\n  AsyncEmptyDirective, AsyncErrorDirective,\n] as const",
                    "rawdescription": "Convenience: import this array to get the wrapper + all slot directives.",
                    "description": "<p>Convenience: import this array to get the wrapper + all slot directives.</p>\n"
                }
            ],
            "src/app/auth/auth.guard.ts": [
                {
                    "name": "authGuard",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/auth/auth.guard.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "CanActivateFn",
                    "defaultValue": "() => {\n  const store = inject(SessionStore);\n  const router = inject(Router);\n  return store.isAuthenticated() ? true : router.createUrlTree(['/login']);\n}",
                    "rawdescription": "Route guard: only let authenticated users in; otherwise redirect to /login.",
                    "description": "<p>Route guard: only let authenticated users in; otherwise redirect to /login.</p>\n"
                }
            ],
            "src/app/brief/infrastructure/brief.adapter.ts": [
                {
                    "name": "BRIEF_ACTION_FAILED",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "$localize`:@@brief.action.failed:De actie is niet gelukt. Probeer het later opnieuw.`"
                },
                {
                    "name": "BRIEF_LOAD_FAILED",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "$localize`:@@brief.load.failed:De brief kon niet worden geladen.`"
                },
                {
                    "name": "MARKS",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "defaultValue": "['bold', 'italic', 'underline']"
                }
            ],
            "src/app/registratie/application/draft-sync.ts": [
                {
                    "name": "DEBOUNCE_MS",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/registratie/application/draft-sync.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "defaultValue": "600"
                }
            ],
            "src/app/registratie/domain/registratie-wizard.machine.ts": [
                {
                    "name": "emptyDraft",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Draft",
                    "defaultValue": "{ antwoorden: {} }"
                },
                {
                    "name": "initial",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RegistratieState",
                    "defaultValue": "{ tag: 'Invullen', draft: emptyDraft, cursor: 0, errors: {}, upload: initialUpload }"
                },
                {
                    "name": "STEPS",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "StepId[]",
                    "defaultValue": "['adres', 'beroep', 'controle']",
                    "rawdescription": "The fixed step list. Number of steps never changes; questions reveal inline.",
                    "description": "<p>The fixed step list. Number of steps never changes; questions reveal inline.</p>\n"
                }
            ],
            "src/environments/environment.prod.ts": [
                {
                    "name": "environment",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/environments/environment.prod.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "defaultValue": "{\n  production: true,\n  apiBaseUrl: '',\n}",
                    "rawdescription": "Production environment. `apiBaseUrl` stays relative ('') for a same-origin /\nreverse-proxy deployment; set it to the API origin (e.g. 'https://api.example.nl')\nwhen the SPA and backend are served from different hosts. This is the single\nplace the deployed API location is configured.",
                    "description": "<p>Production environment. <code>apiBaseUrl</code> stays relative (&#39;&#39;) for a same-origin /\nreverse-proxy deployment; set it to the API origin (e.g. &#39;<a href=\"https://api.example.nl\">https://api.example.nl</a>&#39;)\nwhen the SPA and backend are served from different hosts. This is the single\nplace the deployed API location is configured.</p>\n"
                }
            ],
            "src/environments/environment.ts": [
                {
                    "name": "environment",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/environments/environment.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "defaultValue": "{\n  production: false,\n  apiBaseUrl: '',\n}",
                    "rawdescription": "Default (development) environment. `apiBaseUrl` is empty so requests are\nrelative to the current origin — in dev the ng-serve proxy forwards /api to the\nbackend (proxy.conf.json). Swapped for environment.prod.ts in production builds\n(angular.json fileReplacements).",
                    "description": "<p>Default (development) environment. <code>apiBaseUrl</code> is empty so requests are\nrelative to the current origin — in dev the ng-serve proxy forwards /api to the\nbackend (proxy.conf.json). Swapped for environment.prod.ts in production builds\n(angular.json fileReplacements).</p>\n"
                }
            ],
            "src/app/shared/kernel/fp.ts": [
                {
                    "name": "err",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/kernel/fp.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "<E>(error: E): Result<E, never> => ({ ok: false, error })"
                },
                {
                    "name": "ok",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/kernel/fp.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "<T>(value: T): Result<never, T> => ({ ok: true, value })"
                }
            ],
            "src/app/shared/upload/upload.adapter.ts": [
                {
                    "name": "genericError",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/upload/upload.adapter.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(): string => UPLOAD_FAILED"
                },
                {
                    "name": "parseError",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/upload/upload.adapter.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(body: string): string => {\n  try {\n    return problemDetail(JSON.parse(body), UPLOAD_FAILED);\n  } catch {\n    return genericError();\n  }\n}"
                },
                {
                    "name": "UPLOAD_ABORTED",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/upload/upload.adapter.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "Symbol('upload-aborted')",
                    "rawdescription": "Sentinel rejection so the caller can tell a user-cancel from a real failure.",
                    "description": "<p>Sentinel rejection so the caller can tell a user-cancel from a real failure.</p>\n"
                },
                {
                    "name": "UPLOAD_FAILED",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/upload/upload.adapter.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "$localize`:@@upload.failed:Uploaden is niet gelukt. Probeer het opnieuw.`"
                }
            ],
            "src/app/registratie/ui/registratie-wizard/registratie-wizard.component.ts": [
                {
                    "name": "HANDMATIG",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/registratie/ui/registratie-wizard/registratie-wizard.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "defaultValue": "'__handmatig__'"
                },
                {
                    "name": "KANALEN",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/registratie/ui/registratie-wizard/registratie-wizard.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "defaultValue": "[\n  { value: 'email', label: $localize`:@@registratie.kanaalEmail:E-mail` },\n  { value: 'post', label: $localize`:@@registratie.kanaalPost:Post` },\n]"
                },
                {
                    "name": "NL_TAALVAARDIGHEID_VRAAG",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/registratie/ui/registratie-wizard/registratie-wizard.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "defaultValue": "'nl-taalvaardigheid'",
                    "rawdescription": "The server-owned geldigheidsvraag whose\"ja\" answer requires a Dutch-taalvaardigheid\nupload (proof of the confirmed B2 level). Stable id shared with the backend.",
                    "description": "<p>The server-owned geldigheidsvraag whose&quot;ja&quot; answer requires a Dutch-taalvaardigheid\nupload (proof of the confirmed B2 level). Stable id shared with the backend.</p>\n"
                }
            ],
            "src/app/shared/ui/alert/alert.component.ts": [
                {
                    "name": "ICON_LABELS",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/ui/alert/alert.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Record<AlertType, string>",
                    "defaultValue": "{\n  info: $localize`:@@alert.icon.info:Informatie`,\n  ok: $localize`:@@alert.icon.ok:Gelukt`,\n  warning: $localize`:@@alert.icon.warning:Waarschuwing`,\n  error: $localize`:@@alert.icon.error:Foutmelding`,\n}"
                }
            ],
            "src/app/herregistratie/domain/herregistratie.machine.ts": [
                {
                    "name": "initial",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "WizardState",
                    "defaultValue": "{ tag: 'Editing', step: 1, draft: { uren: '', jaren: '', punten: '' }, errors: {}, upload: initialUpload }"
                }
            ],
            "src/app/herregistratie/domain/intake.machine.ts": [
                {
                    "name": "initial",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "IntakeState",
                    "defaultValue": "{ tag: 'Answering', answers: {}, cursor: 0, errors: {}, scholingThreshold: SCHOLING_THRESHOLD_DEFAULT }"
                },
                {
                    "name": "SCHOLING_THRESHOLD_DEFAULT",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "defaultValue": "1000",
                    "rawdescription": "Demo fallback only — the real threshold is a SERVER-OWNED policy value fetched\nat runtime (see IntakePolicyDto / SetPolicy). ponytail: default is the offline\nfallback; the server value wins.",
                    "description": "<p>Demo fallback only — the real threshold is a SERVER-OWNED policy value fetched\nat runtime (see IntakePolicyDto / SetPolicy). ponytail: default is the offline\nfallback; the server value wins.</p>\n"
                },
                {
                    "name": "STEPS",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "StepId[]",
                    "defaultValue": "['buitenland', 'werk', 'review']",
                    "rawdescription": "The fixed step list. Number of steps never changes; questions reveal inline.",
                    "description": "<p>The fixed step list. Number of steps never changes; questions reveal inline.</p>\n"
                }
            ],
            "src/app/registratie/domain/change-request.machine.ts": [
                {
                    "name": "initial",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/registratie/domain/change-request.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "State",
                    "defaultValue": "{\n  tag: 'Editing',\n  draft: { straat: '', postcode: '', woonplaats: '' },\n  errors: {},\n}"
                }
            ],
            "src/app/brief/domain/brief.machine.ts": [
                {
                    "name": "initial",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "BriefState",
                    "defaultValue": "{ tag: 'loading' }"
                }
            ],
            "src/app/shared/ui/radio-group/radio-group.component.ts": [
                {
                    "name": "JA_NEE",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/ui/radio-group/radio-group.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "RadioOption[]",
                    "defaultValue": "[\n  { value: 'ja', label: $localize`:@@common.ja:Ja` },\n  { value: 'nee', label: $localize`:@@common.nee:Nee` },\n]",
                    "rawdescription": "The ubiquitous yes/no option pair. Language-agnostic now the labels are\nlocalized, so it lives next to RadioOption and both wizards import it.",
                    "description": "<p>The ubiquitous yes/no option pair. Language-agnostic now the labels are\nlocalized, so it lives next to RadioOption and both wizards import it.</p>\n"
                }
            ],
            "src/app/shared/ui/rich-text-editor/rich-text-dom.ts": [
                {
                    "name": "MARK_TAG",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Record<Mark, string>",
                    "defaultValue": "{ bold: 'strong', italic: 'em', underline: 'u' }"
                },
                {
                    "name": "ORDER",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Mark[]",
                    "defaultValue": "['bold', 'italic', 'underline']",
                    "rawdescription": "The quarantined boundary between the imperative `contenteditable` DOM and the\nserialisable `RichTextBlock` value. Pure functions (given a DOM they render /\nread) so they round-trip losslessly and can be unit-tested without Angular. The\nrest of the app only ever sees `RichTextBlock` — this is the one place DOM leaks.\n\nponytail: mark detection covers the tags/styles a browser's execCommand emits\n(strong/b, em/i, u, and inline font-weight/style/decoration); exotic pasted markup\ndegrades to plain text rather than crashing.",
                    "description": "<p>The quarantined boundary between the imperative <code>contenteditable</code> DOM and the\nserialisable <code>RichTextBlock</code> value. Pure functions (given a DOM they render /\nread) so they round-trip losslessly and can be unit-tested without Angular. The\nrest of the app only ever sees <code>RichTextBlock</code> — this is the one place DOM leaks.</p>\n<p>ponytail: mark detection covers the tags/styles a browser&#39;s execCommand emits\n(strong/b, em/i, u, and inline font-weight/style/decoration); exotic pasted markup\ndegrades to plain text rather than crashing.</p>\n"
                }
            ],
            "src/app/shared/layout/wizard-shell/wizard-shell.component.ts": [
                {
                    "name": "naarStapLabel",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/layout/wizard-shell/wizard-shell.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(stepNumber: number, stepLabel: string) =>\n  $localize`:@@wizard.naarStap:Naar stap ${stepNumber}:nummer: - ${stepLabel}:label:`",
                    "rawdescription": "CIBG procesnavigatie primary-button copy for a non-final step: \"Naar stap 2 - Werk\".\nShared so every wizard's `primaryLabel` reads the same way.",
                    "description": "<p>CIBG procesnavigatie primary-button copy for a non-final step: &quot;Naar stap 2 - Werk&quot;.\nShared so every wizard&#39;s <code>primaryLabel</code> reads the same way.</p>\n"
                }
            ],
            "src/app/shared/layout/site-header/site-header.component.ts": [
                {
                    "name": "NAV_ITEMS",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/layout/site-header/site-header.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "HeaderNavItem[]",
                    "defaultValue": "[\n  { label: $localize`:@@header.nav.overzicht:Overzicht`, to: '/dashboard' },\n  { label: $localize`:@@header.nav.gegevens:Mijn gegevens`, to: '/registratie' },\n  { label: $localize`:@@header.nav.herregistratie:Herregistratie`, to: '/herregistratie' },\n  { label: $localize`:@@header.nav.inschrijven:Inschrijven`, to: '/registreren' },\n]"
                }
            ],
            "src/app/shared/ui/choice-list/choice-list.component.ts": [
                {
                    "name": "nextId",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/ui/choice-list/choice-list.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "defaultValue": "0"
                }
            ],
            "src/app/brief/domain/placeholders.ts": [
                {
                    "name": "RAW_BRACES",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/brief/domain/placeholders.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "/\\{\\{|\\}\\}/"
                }
            ],
            "src/app/shared/ui/debug-state/mask.ts": [
                {
                    "name": "REDACTED",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/ui/debug-state/mask.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "defaultValue": "'‹redacted›'"
                }
            ],
            "src/app/shared/infrastructure/api-client.provider.ts": [
                {
                    "name": "REQUEST_TIMEOUT_MS",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/infrastructure/api-client.provider.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "defaultValue": "10_000",
                    "rawdescription": "Single place every API call passes through: the seam for cross-cutting concerns.",
                    "description": "<p>Single place every API call passes through: the seam for cross-cutting concerns.</p>\n"
                }
            ],
            "src/app/shared/infrastructure/role.interceptor.ts": [
                {
                    "name": "roleInterceptor",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/infrastructure/role.interceptor.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "HttpInterceptorFn",
                    "defaultValue": "(req, next) => {\n  if (!req.url.includes('/api/v1/brief')) return next(req);\n  return next(req.clone({ setHeaders: { 'X-Role': currentRole() } }));\n}",
                    "rawdescription": "Dev-only: stamps brief requests with the current `?role=` as an `X-Role` header so\nthe backend can enforce the drafter/approver rules. Only brief endpoints carry it;\neverything else is untouched.",
                    "description": "<p>Dev-only: stamps brief requests with the current <code>?role=</code> as an <code>X-Role</code> header so\nthe backend can enforce the drafter/approver rules. Only brief endpoints carry it;\neverything else is untouched.</p>\n"
                }
            ],
            "src/app/app.routes.ts": [
                {
                    "name": "routes",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/app.routes.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Routes",
                    "defaultValue": "[\n  {\n    path: '',\n    component: ShellComponent, // persistent header/footer; only children swap\n    children: [\n      { path: '', pathMatch: 'full', redirectTo: 'login' },\n      { path: 'login', loadComponent: () => \"import('@auth/ui/login.page').then(m => m.LoginPage)\" },\n      { path: 'dashboard', canActivate: [authGuard], loadComponent: () => \"import('@registratie/ui/dashboard.page').then(m => m.DashboardPage)\" },\n      { path: 'registratie', canActivate: [authGuard], loadComponent: () => \"import('@registratie/ui/registration-detail.page').then(m => m.RegistrationDetailPage)\" },\n      { path: 'registreren', canActivate: [authGuard], loadComponent: () => \"import('@registratie/ui/registratie.page').then(m => m.RegistratiePage)\" },\n      { path: 'herregistratie', canActivate: [authGuard], loadComponent: () => \"import('@herregistratie/ui/herregistratie.page').then(m => m.HerregistratiePage)\" },\n      { path: 'intake', canActivate: [authGuard], loadComponent: () => \"import('@herregistratie/ui/intake.page').then(m => m.IntakePage)\" },\n      { path: 'brief', canActivate: [authGuard], loadComponent: () => \"import('@brief/ui/brief.page').then(m => m.BriefPage)\" },\n      { path: 'concepts', loadComponent: () => \"import('./showcase/concepts.page').then(m => m.ConceptsPage)\" },\n      { path: '**', redirectTo: 'login' },\n    ],\n  },\n]"
                }
            ],
            "src/app/shared/layout/breadcrumb/breadcrumb-trail.ts": [
                {
                    "name": "ROUTES",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/layout/breadcrumb/breadcrumb-trail.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Record<string, Crumb>",
                    "defaultValue": "{\n  '/dashboard': { label: $localize`:@@crumb.dashboard:Mijn overzicht` },\n  '/registratie': { label: $localize`:@@crumb.registratie:Mijn gegevens`, parent: '/dashboard' },\n  '/registreren': { label: $localize`:@@crumb.registreren:Inschrijven`, parent: '/dashboard' },\n  '/herregistratie': { label: $localize`:@@crumb.herregistratie:Herregistratie`, parent: '/dashboard' },\n  '/intake': { label: $localize`:@@crumb.intake:Herregistratie-intake`, parent: '/dashboard' },\n  '/concepts': { label: $localize`:@@crumb.concepts:Functionele patronen`, parent: '/dashboard' },\n}"
                }
            ],
            "src/app/brief/ui/letter-preview/letter-preview.component.ts": [
                {
                    "name": "SAMPLE_VALUES",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/brief/ui/letter-preview/letter-preview.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Record<string, string>",
                    "defaultValue": "{\n  naam_zorgverlener: 'J. Jansen',\n  big_nummer: '12345678901',\n}"
                }
            ],
            "src/app/shared/infrastructure/scenario.interceptor.ts": [
                {
                    "name": "scenarioInterceptor",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/infrastructure/scenario.interceptor.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "HttpInterceptorFn",
                    "defaultValue": "(req, next) => {\n  if (!req.url.includes('/api/')) return next(req);\n\n  switch (currentScenario()) {\n    case 'slow':\n      return next(req).pipe(delay(2500));\n    case 'loading':\n      return next(req).pipe(delay(600_000)); // effectively never resolves\n    case 'empty':\n      // '[]' so the typed client parses it to an empty array (notes → Empty state).\n      return of(new HttpResponse({ status: 200, body: '[]' })).pipe(delay(400));\n    case 'error':\n      return timer(400).pipe(\n        switchMap(() => throwError(() =>\n          new HttpErrorResponse({ status: 500, statusText: 'Demo-fout', url: req.url }))),\n      );\n    default:\n      return next(req);\n  }\n}",
                    "rawdescription": "Demo-only: rewrites the timing/outcome of API data requests based on\n?scenario= so loading / empty / error states can be shown on demand.\nNon-API requests are untouched.",
                    "description": "<p>Demo-only: rewrites the timing/outcome of API data requests based on\n?scenario= so loading / empty / error states can be shown on demand.\nNon-API requests are untouched.</p>\n"
                }
            ],
            "src/app/shared/application/session.port.ts": [
                {
                    "name": "SESSION_PORT",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/application/session.port.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "new InjectionToken<SessionPort>('SESSION_PORT')"
                }
            ],
            "src/app/auth/application/session.store.ts": [
                {
                    "name": "STORAGE_KEY",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/auth/application/session.store.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "defaultValue": "'session-v1'"
                }
            ],
            "src/app/shared/application/submit.ts": [
                {
                    "name": "SUBMIT_FAILED",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/application/submit.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "$localize`:@@submit.failed:Het indienen is niet gelukt. Probeer het later opnieuw.`"
                }
            ],
            "src/app/registratie/ui/aanvraag-block/aanvraag-block.component.ts": [
                {
                    "name": "TYPE_LABELS",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/registratie/ui/aanvraag-block/aanvraag-block.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Record<AanvraagType, string>",
                    "defaultValue": "{\n  registratie: $localize`:@@aanvraagBlock.type.registratie:Inschrijving`,\n  herregistratie: $localize`:@@aanvraagBlock.type.herregistratie:Herregistratie`,\n  intake: $localize`:@@aanvraagBlock.type.intake:Herregistratie-intake`,\n}"
                }
            ],
            "src/app/shared/infrastructure/scenario.ts": [
                {
                    "name": "VALID",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/infrastructure/scenario.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Scenario[]",
                    "defaultValue": "['default', 'slow', 'loading', 'empty', 'error', 'upload-slow', 'upload-fail']"
                }
            ]
        },
        "groupedFunctions": {
            "src/app/brief/domain/brief.machine.ts": [
                {
                    "name": "addFreeText",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "sectionKey",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Brief",
                    "jsdoctags": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "sectionKey",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "editBlockContent",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "blockId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "content",
                            "type": "RichTextBlock",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Brief",
                    "jsdoctags": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "blockId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "content",
                            "type": "RichTextBlock",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "insertPassages",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "sectionKey",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "passages",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Brief",
                    "jsdoctags": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "sectionKey",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "passages",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "isEditable",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Edits are allowed only in these statuses; editing a rejected letter reopens it.</p>\n",
                    "args": [
                        {
                            "name": "status",
                            "type": "BriefStatus",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "boolean",
                    "jsdoctags": [
                        {
                            "name": "status",
                            "type": "BriefStatus",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "isSectionEditable",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>A section accepts edits only when it is not a locked (predefined) template section.</p>\n",
                    "args": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "sectionKey",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "boolean",
                    "jsdoctags": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "sectionKey",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "mapBlocks",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Brief",
                    "jsdoctags": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "mapSection",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "sectionKey",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Brief",
                    "jsdoctags": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "sectionKey",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "moveWithinSection",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "blocks",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "blockId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "toIndex",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "LetterBlock[]",
                    "jsdoctags": [
                        {
                            "name": "blocks",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "blockId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "toIndex",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "nextLocalIndex",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Next <code>local-N</code> block id — DERIVED from existing ids (max + 1), not a stored counter.</p>\n",
                    "args": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "number",
                    "jsdoctags": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "reduce",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "BriefState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "m",
                            "type": "BriefMsg",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "BriefState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "BriefState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "m",
                            "type": "BriefMsg",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "sectionKeyOfBlock",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The section a block currently lives in, or undefined if the block is gone.</p>\n",
                    "args": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "blockId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "string | undefined",
                    "jsdoctags": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "blockId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "transition",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>A guarded status transition: only fires from <code>from</code>, and only if <code>guard</code> passes.</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "BriefState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "from",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "next",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "guard",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "() => true"
                        }
                    ],
                    "returnType": "BriefState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "BriefState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "from",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "next",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "guard",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "() => true",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "withEdit",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Apply an edit to the brief, guarded by status. A rejected letter reopens to draft.</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "BriefState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "BriefState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "BriefState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/shared/ui/rich-text-editor/rich-text-dom.ts": [
                {
                    "name": "adjacentChip",
                    "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The placeholder chip immediately adjacent to a collapsed caret in the given direction\n(-1 = before / Backspace, +1 = after / Delete), or null. Chips are contenteditable=false,\nwhich some browsers won&#39;t delete on Backspace; the editor uses this to remove them itself.</p>\n",
                    "args": [
                        {
                            "name": "container",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "offset",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "direction",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "HTMLElement | null",
                    "jsdoctags": [
                        {
                            "name": "container",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "offset",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "direction",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "canonical",
                    "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "marks",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Mark[]",
                    "jsdoctags": [
                        {
                            "name": "marks",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "collect",
                    "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "node",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "marks",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "out",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "void",
                    "jsdoctags": [
                        {
                            "name": "node",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "marks",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "out",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "createChip",
                    "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Build one non-editable placeholder chip element (shared by initial render and\nlive caret insertion). <code>data-auto</code> distinguishes auto-resolvable vs manual fields\nfor styling; it is a render hint only and is ignored on read-back.</p>\n",
                    "args": [
                        {
                            "name": "doc",
                            "type": "Document",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "key",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "label",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "auto",
                            "type": "unknown",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "false"
                        }
                    ],
                    "returnType": "HTMLElement",
                    "jsdoctags": [
                        {
                            "name": "doc",
                            "type": "Document",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "key",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "label",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "auto",
                            "type": "unknown",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "false",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "fillLine",
                    "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Fill one line element (<p> or <li>) with a paragraph&#39;s nodes; empty lines keep a\nfocusable <br>. Shared by paragraph and list-item rendering.</p>\n",
                    "args": [
                        {
                            "name": "el",
                            "type": "HTMLElement",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "para",
                            "type": "Paragraph",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "labelFor",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "doc",
                            "type": "Document",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "autoFor",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "returnType": "void",
                    "jsdoctags": [
                        {
                            "name": "el",
                            "type": "HTMLElement",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "para",
                            "type": "Paragraph",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "labelFor",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "doc",
                            "type": "Document",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "autoFor",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "isChip",
                    "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "node",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "HTMLElement",
                    "jsdoctags": [
                        {
                            "name": "node",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "markOf",
                    "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "el",
                            "type": "HTMLElement",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Mark | null",
                    "jsdoctags": [
                        {
                            "name": "el",
                            "type": "HTMLElement",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "readBlock",
                    "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "root",
                            "type": "HTMLElement",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RichTextBlock",
                    "jsdoctags": [
                        {
                            "name": "root",
                            "type": "HTMLElement",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "readLine",
                    "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Read one line element (<p>, <div>, or <li>) into a paragraph&#39;s nodes.</p>\n",
                    "args": [
                        {
                            "name": "el",
                            "type": "HTMLElement",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "literal type",
                    "jsdoctags": [
                        {
                            "name": "el",
                            "type": "HTMLElement",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "renderInto",
                    "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "root",
                            "type": "HTMLElement",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "block",
                            "type": "RichTextBlock",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "labelFor",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "autoFor",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "returnType": "void",
                    "jsdoctags": [
                        {
                            "name": "root",
                            "type": "HTMLElement",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "block",
                            "type": "RichTextBlock",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "labelFor",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "autoFor",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "renderNode",
                    "file": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "node",
                            "type": "RichTextNode",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "labelFor",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "doc",
                            "type": "Document",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "autoFor",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "returnType": "Node",
                    "jsdoctags": [
                        {
                            "name": "node",
                            "type": "RichTextNode",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "labelFor",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "doc",
                            "type": "Document",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "autoFor",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/brief/domain/brief.ts": [
                {
                    "name": "allBlocks",
                    "file": "src/app/brief/domain/brief.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "LetterBlock[]",
                    "jsdoctags": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "allDiagnostics",
                    "file": "src/app/brief/domain/brief.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Every diagnostic in the letter, in section→block→node order. This is what the\ndiagnostics panel renders and what the send gate checks.</p>\n",
                    "args": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Diagnostic[]",
                    "jsdoctags": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "canSubmit",
                    "file": "src/app/brief/domain/brief.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>A letter can be submitted only when every REQUIRED section has at least one block.</p>\n",
                    "args": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "boolean",
                    "jsdoctags": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "hasBlockingErrors",
                    "file": "src/app/brief/domain/brief.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "diagnostics",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "boolean",
                    "jsdoctags": [
                        {
                            "name": "diagnostics",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "unresolvedPlaceholders",
                    "file": "src/app/brief/domain/brief.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Manual (non-auto-resolvable) placeholder keys still present, deduped. These are the\n<code>unresolved-at-send</code> warnings, surfaced as a completeness list.</p>\n",
                    "args": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "string[]",
                    "jsdoctags": [
                        {
                            "name": "brief",
                            "type": "Brief",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/shared/application/remote-data.ts": [
                {
                    "name": "andThen",
                    "file": "src/app/shared/application/remote-data.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Chain a second source that depends on the first one&#39;s value.</p>\n",
                    "args": [
                        {
                            "name": "rd",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RemoteData<E, B>",
                    "jsdoctags": [
                        {
                            "name": "rd",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "foldRemote",
                    "file": "src/app/shared/application/remote-data.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Exhaustive fold: you must handle every case, checked at compile time.</p>\n",
                    "args": [
                        {
                            "name": "rd",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "h",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "R",
                    "jsdoctags": [
                        {
                            "name": "rd",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "h",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "fromResource",
                    "file": "src/app/shared/application/remote-data.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Project Angular&#39;s loosely-typed Resource into a RemoteData value.</p>\n",
                    "args": [
                        {
                            "name": "r",
                            "type": "Resource",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "isEmpty",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "() => false"
                        }
                    ],
                    "returnType": "RemoteData<Error | undefined, T>",
                    "jsdoctags": [
                        {
                            "name": "r",
                            "type": "Resource",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "isEmpty",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "() => false",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "map",
                    "file": "src/app/shared/application/remote-data.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Transform the value inside a Success; pass other states through unchanged.</p>\n",
                    "args": [
                        {
                            "name": "rd",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RemoteData<E, B>",
                    "jsdoctags": [
                        {
                            "name": "rd",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "map2",
                    "file": "src/app/shared/application/remote-data.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Combine two sources into one. Use this to merge e.g. a BIG-register call\nand a BRP call into a single state the page can render.</p>\n",
                    "args": [
                        {
                            "name": "a",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "b",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RemoteData<E, R>",
                    "jsdoctags": [
                        {
                            "name": "a",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "b",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "map3",
                    "file": "src/app/shared/application/remote-data.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Combine three sources (built on map2).</p>\n",
                    "args": [
                        {
                            "name": "a",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "b",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "c",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RemoteData<E, R>",
                    "jsdoctags": [
                        {
                            "name": "a",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "b",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "c",
                            "type": "RemoteData",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/shared/kernel/fp.ts": [
                {
                    "name": "assertNever",
                    "file": "src/app/shared/kernel/fp.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Tiny native-TS functional toolkit. No dependency — this is the whole &quot;library&quot;.\nReused by every &quot;impossible states&quot; concept in the POC.</p>\n",
                    "args": [
                        {
                            "name": "x",
                            "type": "never",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "never",
                    "jsdoctags": [
                        {
                            "name": "x",
                            "type": "never",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "whenTag",
                    "file": "src/app/shared/kernel/fp.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Narrow a tagged union to one variant by its <code>tag</code>, or null. The single place\nthe cast lives — TS can&#39;t narrow through a runtime tag argument, so callers get\n<code>whenTag(state, &#39;Editing&#39;)?.foo</code> instead of repeating <code>as Extract&lt;…&gt;</code>.</p>\n",
                    "args": [
                        {
                            "name": "u",
                            "type": "U",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "tag",
                            "type": "K",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Extract | null",
                    "jsdoctags": [
                        {
                            "name": "u",
                            "type": "U",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "tag",
                            "type": "K",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/herregistratie/domain/herregistratie.machine.ts": [
                {
                    "name": "back",
                    "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "WizardState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "gaNaarStap",
                    "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Jump back to an earlier step to correct data (controle → step N). Forward\njumps are not allowed (would skip validation).</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "step",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "WizardState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "step",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "hasProgress",
                    "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Has the user meaningfully started, so it&#39;s worth persisting as a Concept?</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "Extract",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "boolean",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "Extract",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "next",
                    "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Advance one step, gating on that step&#39;s fields. Illegal elsewhere = no-op.</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "WizardState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "reduce",
                    "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "m",
                            "type": "WizardMsg",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "WizardState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "m",
                            "type": "WizardMsg",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "resolve",
                    "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Resolve the async submit. Only meaningful while Submitting.</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "r",
                            "type": "Result",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "WizardState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "r",
                            "type": "Result",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setField",
                    "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Update one draft field while editing; ignored in any other state.</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "key",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "value",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "WizardState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "key",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "value",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "submit",
                    "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Step 3 submit: parse everything + require documents; Submitting only with Valid.</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "WizardState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "upload",
                    "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Route an upload sub-message through the pure upload reducer (Editing only).</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "msg",
                            "type": "UploadMsg",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "WizardState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "WizardState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "msg",
                            "type": "UploadMsg",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "validate",
                    "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Parse every field; on success hand back a Valid, else the per-field errors.</p>\n",
                    "args": [
                        {
                            "name": "draft",
                            "type": "Draft",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "upload",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<StepErrors, Valid>",
                    "jsdoctags": [
                        {
                            "name": "draft",
                            "type": "Draft",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "upload",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/herregistratie/domain/intake.machine.ts": [
                {
                    "name": "back",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "IntakeState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "currentStep",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Which step the cursor currently points at (clamped to the fixed list).</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "Extract",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "StepId",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "Extract",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "gaNaarStap",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Jump back to an earlier step to correct answers (review → step N). Forward\njumps are not allowed (would skip validation).</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "cursor",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "IntakeState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "cursor",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "hasProgress",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Has the user meaningfully started, so it&#39;s worth persisting as a Concept?\n(No auto-prefill here — pristine means truly untouched.)</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "Extract",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "boolean",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "Extract",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "lageUren",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>True when NL-hours are low enough that the scholing question must be answered.\nThe threshold is passed in (server-owned), not hardcoded.</p>\n",
                    "args": [
                        {
                            "name": "a",
                            "type": "Answers",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "scholingThreshold",
                            "type": "unknown",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "SCHOLING_THRESHOLD_DEFAULT"
                        }
                    ],
                    "returnType": "boolean",
                    "jsdoctags": [
                        {
                            "name": "a",
                            "type": "Answers",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "scholingThreshold",
                            "type": "unknown",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "SCHOLING_THRESHOLD_DEFAULT",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "next",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "IntakeState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "reduce",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "m",
                            "type": "IntakeMsg",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "IntakeState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "m",
                            "type": "IntakeMsg",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "resolve",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "r",
                            "type": "Result",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "IntakeState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "r",
                            "type": "Result",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setAnswer",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "key",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "value",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "IntakeState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "key",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "value",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setPolicy",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Apply a server-owned policy value (e.g. the scholing threshold).</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "scholingThreshold",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "IntakeState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "scholingThreshold",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "submit",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "IntakeState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "IntakeState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "validateAll",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Parse the whole questionnaire into a ValidIntake (called on submit).</p>\n",
                    "args": [
                        {
                            "name": "a",
                            "type": "Answers",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "scholingThreshold",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<Errors, ValidIntake>",
                    "jsdoctags": [
                        {
                            "name": "a",
                            "type": "Answers",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "scholingThreshold",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "validateStep",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Validate every question currently visible in ONE step. Errors keyed per field.</p>\n",
                    "args": [
                        {
                            "name": "step",
                            "type": "StepId",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "a",
                            "type": "Answers",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "scholingThreshold",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<Errors, void>",
                    "jsdoctags": [
                        {
                            "name": "step",
                            "type": "StepId",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "a",
                            "type": "Answers",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "scholingThreshold",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/domain/registratie-wizard.machine.ts": [
                {
                    "name": "back",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RegistratieState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "currentStep",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Which step the cursor currently points at (clamped to the fixed list).</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "Extract",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "StepId",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "Extract",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "declareerBeroep",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Declare the beroep for a manually-entered diploma (chosen from a fixed list).</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "beroep",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RegistratieState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "beroep",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "gaNaarStap",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Jump back to an earlier step to correct data (controle → step N). Forward\njumps are not allowed (would skip validation). Preserves the draft.</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "cursor",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RegistratieState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "cursor",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "hasProgress",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Has the user meaningfully started, so it&#39;s worth persisting as a Concept? Excludes\nthe automatic BRP address prefill on step 0 — a bare page visit creates nothing.\nponytail: an address typed at step 0 without any of these signals is not yet\npersisted (created once they advance/choose); accepted regression vs. sessionStorage.</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "Extract",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "boolean",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "Extract",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "kiesDiploma",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Pick a DUO diploma; the beroep is derived from it and the applicable policy\nquestions (<code>vraagIds</code>) come with it (both server-computed, passed in).</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "diplomaId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "beroep",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "vraagIds",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RegistratieState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "diplomaId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "beroep",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "vraagIds",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "kiesHandmatig",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Switch to manual diploma entry: the diploma isn&#39;t in DUO, so the MAXIMAL\npolicy-question set applies and the entry is flagged handmatig/unverified. The\nberoep is declared separately (declareerBeroep).</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "vraagIds",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RegistratieState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "vraagIds",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "next",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RegistratieState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "prefillAdres",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Prefill the address from a BRP lookup and flag its origin (PRD §7).</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "straat",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "postcode",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "woonplaats",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RegistratieState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "straat",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "postcode",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "woonplaats",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "reduce",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "m",
                            "type": "RegistratieMsg",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RegistratieState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "m",
                            "type": "RegistratieMsg",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "resolve",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "r",
                            "type": "Result",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RegistratieState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "r",
                            "type": "Result",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setAntwoord",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "vraagId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "value",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RegistratieState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "vraagId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "value",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setCorrespondentie",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "value",
                            "type": "Correspondentie",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RegistratieState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "value",
                            "type": "Correspondentie",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setField",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "key",
                            "type": "DraftField",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "value",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RegistratieState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "key",
                            "type": "DraftField",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "value",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "submit",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RegistratieState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "upload",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Route an upload sub-message through the pure upload reducer (Invullen only).</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "msg",
                            "type": "UploadMsg",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RegistratieState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "RegistratieState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "msg",
                            "type": "UploadMsg",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "validateAll",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Parse the whole wizard into a ValidRegistratie (called on submit).</p>\n",
                    "args": [
                        {
                            "name": "d",
                            "type": "Draft",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "upload",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<Errors, ValidRegistratie>",
                    "jsdoctags": [
                        {
                            "name": "d",
                            "type": "Draft",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "upload",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "validateStep",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Validate every question currently visible in ONE step. Errors keyed per field.</p>\n",
                    "args": [
                        {
                            "name": "step",
                            "type": "StepId",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "d",
                            "type": "Draft",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "upload",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<Errors, void>",
                    "jsdoctags": [
                        {
                            "name": "step",
                            "type": "StepId",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "d",
                            "type": "Draft",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "upload",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/domain/block-actions.ts": [
                {
                    "name": "blockActions",
                    "file": "src/app/registratie/domain/block-actions.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "status",
                            "type": "AanvraagStatus",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "BlockAction[]",
                    "jsdoctags": [
                        {
                            "name": "status",
                            "type": "AanvraagStatus",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/brief/infrastructure/brief.adapter.ts": [
                {
                    "name": "blockToDto",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "b",
                            "type": "LetterBlock",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "LetterBlockDto",
                    "jsdoctags": [
                        {
                            "name": "b",
                            "type": "LetterBlock",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "contentToDto",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "content",
                            "type": "RichTextBlock",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RichTextBlockDto",
                    "jsdoctags": [
                        {
                            "name": "content",
                            "type": "RichTextBlock",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "nodeToDto",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "n",
                            "type": "RichTextNode",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RichTextNodeDto",
                    "jsdoctags": [
                        {
                            "name": "n",
                            "type": "RichTextNode",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parseBlock",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "dto",
                            "type": "LetterBlockDto",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, LetterBlock>",
                    "jsdoctags": [
                        {
                            "name": "dto",
                            "type": "LetterBlockDto",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parseBlockContent",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "dto",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, RichTextBlock>",
                    "jsdoctags": [
                        {
                            "name": "dto",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parseBrief",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "dto",
                            "type": "BriefDto",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, Brief>",
                    "jsdoctags": [
                        {
                            "name": "dto",
                            "type": "BriefDto",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parseBriefView",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "dto",
                            "type": "BriefViewDto",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, BriefView>",
                    "jsdoctags": [
                        {
                            "name": "dto",
                            "type": "BriefViewDto",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parseNode",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "dto",
                            "type": "RichTextNodeDto",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, RichTextNode>",
                    "jsdoctags": [
                        {
                            "name": "dto",
                            "type": "RichTextNodeDto",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parsePassage",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "dto",
                            "type": "LibraryPassageDto",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, LibraryPassage>",
                    "jsdoctags": [
                        {
                            "name": "dto",
                            "type": "LibraryPassageDto",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parsePlaceholderDef",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "dto",
                            "type": "PlaceholderDefDto",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, PlaceholderDef>",
                    "jsdoctags": [
                        {
                            "name": "dto",
                            "type": "PlaceholderDefDto",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parseSection",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "dto",
                            "type": "LetterSectionDto",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, LetterSection>",
                    "jsdoctags": [
                        {
                            "name": "dto",
                            "type": "LetterSectionDto",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parseStatus",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "dto",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, BriefStatus>",
                    "jsdoctags": [
                        {
                            "name": "dto",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "sectionToDto",
                    "file": "src/app/brief/infrastructure/brief.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "LetterSection",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "LetterSectionDto",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "LetterSection",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/shared/upload/upload.machine.ts": [
                {
                    "name": "categorySatisfied",
                    "file": "src/app/shared/upload/upload.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>A required category is satisfied by an initiated upload OR a post-delivery choice.</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "categoryId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "boolean",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "categoryId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "deliveryRefs",
                    "file": "src/app/shared/upload/upload.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The submit payload fragment: digital docs carry their documentId, post categories the channel.</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Array<literal type>",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "mapUpload",
                    "file": "src/app/shared/upload/upload.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Map one upload&#39;s status, leaving the rest of the list untouched.</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "localId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "UploadState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "localId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "f",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "reduceUpload",
                    "file": "src/app/shared/upload/upload.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "m",
                            "type": "UploadMsg",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "UploadState",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "m",
                            "type": "UploadMsg",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "rejectReason",
                    "file": "src/app/shared/upload/upload.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>FE format-validation (never authority — the server re-validates). Returns the\nrejection reason for one file, or null if it passes the category&#39;s type/size.</p>\n",
                    "args": [
                        {
                            "name": "cat",
                            "type": "DocumentCategory",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "file",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "\"type\" | \"size\" | null",
                    "jsdoctags": [
                        {
                            "name": "cat",
                            "type": "DocumentCategory",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "file",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "requiredCategoriesSatisfied",
                    "file": "src/app/shared/upload/upload.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "boolean",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "UploadState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/application/draft-sync.ts": [
                {
                    "name": "createDraftSync",
                    "file": "src/app/registratie/application/draft-sync.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The effectful glue that replaces per-wizard sessionStorage with a backend-owned\nConcept (PRD 0001, phase D). Instantiated in a field initializer (like\n<code>createStore</code>/<code>createUploadController</code>). Responsibilities:</p>\n<ul>\n<li>resume: a <code>?aanvraag=&lt;id&gt;</code> link wins; otherwise resume the ONE existing Concept of\nthis type (at most one per type), seeding the machine from its saved draft;</li>\n<li>create-on-first-progress: when no Concept exists, one is created lazily the first\ntime the wizard reports a non-null snapshot, and its id is stamped into the URL;</li>\n<li>debounced draft sync on every subsequent change.</li>\n</ul>\n<p>Inert without a Router (stories) or when <code>enabled()</code> is false — no network, no resume.</p>\n",
                    "args": [
                        {
                            "name": "deps",
                            "type": "DraftSyncDeps",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "jsdoctags": [
                        {
                            "name": "deps",
                            "type": "DraftSyncDeps",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/shared/application/store.ts": [
                {
                    "name": "createStore",
                    "file": "src/app/shared/application/store.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "init",
                            "type": "Model",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "update",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Store<Model, Msg>",
                    "jsdoctags": [
                        {
                            "name": "init",
                            "type": "Model",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "update",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/application/submit-change-request.ts": [
                {
                    "name": "createSubmitChangeRequest",
                    "file": "src/app/registratie/application/submit-change-request.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Command factory: binds the change-request adapter (which owns the <code>ApiClient</code>)\nin an injection context and returns the submit function the form calls. Same\nfield-initializer shape as <code>createStore</code>/<code>createDraftSync</code>, so the UI holds an\napplication command — not the network client. Returns a <code>Result</code>, never a thrown\nerror, so the form&#39;s reduce can branch on the outcome.</p>\n",
                    "args": []
                }
            ],
            "src/app/shared/upload/upload-controller.ts": [
                {
                    "name": "createUploadController",
                    "file": "src/app/shared/upload/upload-controller.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The effectful glue between the <code>&lt;app-document-upload&gt;</code> organism&#39;s events and the\npure upload reducer + transport. Both wizards instantiate one (in a field\ninitializer, like <code>createStore</code>). Holds the only state a reducer can&#39;t: the live\n<code>File</code> blobs keyed by localId (needed to retry an upload). Loads categories,\nreports background-sync availability, and polls on tab refocus.</p>\n",
                    "args": [
                        {
                            "name": "deps",
                            "type": "UploadControllerDeps",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "jsdoctags": [
                        {
                            "name": "deps",
                            "type": "UploadControllerDeps",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/shared/infrastructure/role.ts": [
                {
                    "name": "currentRole",
                    "file": "src/app/shared/infrastructure/role.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Dev-only role stand-in (the reading MECHANISM; the <code>Role</code> type is domain). This\nPOC has one faked self-service user and no real identities, so the two-person\nletter workflow (drafter vs approver) is driven by a <code>?role=</code> query param —\nexactly the pattern of the <code>?scenario=</code> toggle. The backend receives it as an\n<code>X-Role</code> header (see role.interceptor) and enforces the approver≠drafter rule;\nthe FE derives <code>editable</code> from it.</p>\n",
                    "args": [],
                    "returnType": "Role"
                }
            ],
            "src/app/shared/infrastructure/scenario.ts": [
                {
                    "name": "currentScenario",
                    "file": "src/app/shared/infrastructure/scenario.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Reads ?scenario= from the URL so a demo can force each async state.</p>\n",
                    "args": [],
                    "returnType": "Scenario"
                }
            ],
            "src/app/shared/kernel/rich-text.ts": [
                {
                    "name": "deepCopyBlock",
                    "file": "src/app/shared/kernel/rich-text.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The frozen-snapshot primitive: a deep VALUE copy of a block. Inserting a library\npassage into a letter copies its tree through here, so the letter never shares a\nreference with the library — later library edits can&#39;t mutate an existing letter.</p>\n",
                    "args": [
                        {
                            "name": "block",
                            "type": "RichTextBlock",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "RichTextBlock",
                    "jsdoctags": [
                        {
                            "name": "block",
                            "type": "RichTextBlock",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "emptyBlock",
                    "file": "src/app/shared/kernel/rich-text.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>An empty editable block is one empty paragraph — never zero paragraphs, so the\neditor always has a caret line.</p>\n",
                    "args": [],
                    "returnType": "RichTextBlock"
                },
                {
                    "name": "isBlockEmpty",
                    "file": "src/app/shared/kernel/rich-text.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>True when the block carries no visible content (used for &quot;required section empty&quot;).</p>\n",
                    "args": [
                        {
                            "name": "block",
                            "type": "RichTextBlock",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "boolean",
                    "jsdoctags": [
                        {
                            "name": "block",
                            "type": "RichTextBlock",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "placeholderKeysIn",
                    "file": "src/app/shared/kernel/rich-text.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Every placeholder key used in a block, in document order (duplicates kept — the\ncaller dedupes when it wants a set).</p>\n",
                    "args": [
                        {
                            "name": "block",
                            "type": "RichTextBlock",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "string[]",
                    "jsdoctags": [
                        {
                            "name": "block",
                            "type": "RichTextBlock",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/brief/domain/placeholders.ts": [
                {
                    "name": "diag",
                    "file": "src/app/brief/domain/placeholders.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "code",
                            "type": "DiagnosticCode",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "location",
                            "type": "DiagnosticLocation",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "key",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "returnType": "Diagnostic",
                    "jsdoctags": [
                        {
                            "name": "code",
                            "type": "DiagnosticCode",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "location",
                            "type": "DiagnosticLocation",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "key",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "lintPlaceholders",
                    "file": "src/app/brief/domain/placeholders.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Lint one block against the template&#39;s placeholder set. Pure: given the same\ncontent + valid set + blockId it always returns the same diagnostics, in\ndocument order. One diagnostic per node at most (most-severe wins).</p>\n",
                    "args": [
                        {
                            "name": "content",
                            "type": "RichTextBlock",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "valid",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "blockId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Diagnostic[]",
                    "jsdoctags": [
                        {
                            "name": "content",
                            "type": "RichTextBlock",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "valid",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "blockId",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "messageFor",
                    "file": "src/app/brief/domain/placeholders.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "code",
                            "type": "DiagnosticCode",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "key",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "returnType": "string",
                    "jsdoctags": [
                        {
                            "name": "code",
                            "type": "DiagnosticCode",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "key",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "severityOf",
                    "file": "src/app/brief/domain/placeholders.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p><code>error</code> blocks save (author time) and send (send time); <code>warning</code> is surfaced but allowed.</p>\n",
                    "args": [
                        {
                            "name": "code",
                            "type": "DiagnosticCode",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "DiagnosticSeverity",
                    "jsdoctags": [
                        {
                            "name": "code",
                            "type": "DiagnosticCode",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/showcase/concepts.page.ts": [
                {
                    "name": "fakeResource",
                    "file": "src/app/showcase/concepts.page.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Minimal fake Resource so <app-async> can be driven through every state without HTTP.</p>\n",
                    "args": [
                        {
                            "name": "status",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "value",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        },
                        {
                            "name": "error",
                            "type": "Error",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "returnType": "Resource<T>",
                    "jsdoctags": [
                        {
                            "name": "status",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "value",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "error",
                            "type": "Error",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/domain/tasks.ts": [
                {
                    "name": "formatNL",
                    "file": "src/app/registratie/domain/tasks.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "d",
                            "type": "Date",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "string",
                    "jsdoctags": [
                        {
                            "name": "d",
                            "type": "Date",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "tasksFromProfile",
                    "file": "src/app/registratie/domain/tasks.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Derive the open tasks for a professional (pure). Eligibility is the server&#39;s\ndecision (<code>decisions.eligibleForHerregistratie</code>), passed in — the FE renders it,\nit does not recompute the rule (ADR-0001). The deadline is still formatted\nclient-side for the task copy (presentation, not a rule).</p>\n",
                    "args": [
                        {
                            "name": "reg",
                            "type": "Registration",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "eligibleForHerregistratie",
                            "type": "boolean",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "PortalTask[]",
                    "jsdoctags": [
                        {
                            "name": "reg",
                            "type": "Registration",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "eligibleForHerregistratie",
                            "type": "boolean",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/ui/aanvraag-block/aanvraag-block.component.ts": [
                {
                    "name": "formatNL",
                    "file": "src/app/registratie/ui/aanvraag-block/aanvraag-block.component.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "iso",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "returnType": "string",
                    "jsdoctags": [
                        {
                            "name": "iso",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/brief/ui/letter-preview/letter-preview.component.ts": [
                {
                    "name": "groupParagraphs",
                    "file": "src/app/brief/ui/letter-preview/letter-preview.component.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "paras",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "PreviewSegment[]",
                    "jsdoctags": [
                        {
                            "name": "paras",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/domain/registration.policy.ts": [
                {
                    "name": "herregistratieDeadline",
                    "file": "src/app/registratie/domain/registration.policy.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The herregistratie deadline, if the status has one (only the active state does).</p>\n",
                    "args": [
                        {
                            "name": "reg",
                            "type": "Registration",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Date | null",
                    "jsdoctags": [
                        {
                            "name": "reg",
                            "type": "Registration",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "isHerregistratieEligible",
                    "file": "src/app/registratie/domain/registration.policy.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>A registration may apply for herregistratie only while active and within the\nwindow before its deadline. A struck-off or suspended registration may not.\nSERVER-OWNED RULE: this now runs on the backend (BFF), which ships the result\nas <code>decisions.eligibleForHerregistratie</code> in the dashboard view. Kept here as\nthe reference implementation + unit test; the frontend no longer calls it.</p>\n",
                    "args": [
                        {
                            "name": "reg",
                            "type": "Registration",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "today",
                            "type": "Date",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "windowMonths",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "12"
                        }
                    ],
                    "returnType": "boolean",
                    "jsdoctags": [
                        {
                            "name": "reg",
                            "type": "Registration",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "today",
                            "type": "Date",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "windowMonths",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "12",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "isStatusConsistent",
                    "file": "src/app/registratie/domain/registration.policy.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Invariant check used in tests/demos: a non-active status must not carry a\nherregistratie date. The union already enforces this structurally; this is\nthe runtime statement of the same rule.</p>\n",
                    "args": [
                        {
                            "name": "status",
                            "type": "RegistrationStatus",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "boolean",
                    "jsdoctags": [
                        {
                            "name": "status",
                            "type": "RegistrationStatus",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "statusColor",
                    "file": "src/app/registratie/domain/registration.policy.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Brand colour token for a status. assertNever forces a colour for every new\nstatus variant at compile time.</p>\n",
                    "args": [
                        {
                            "name": "tag",
                            "type": "StatusTag",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "string",
                    "jsdoctags": [
                        {
                            "name": "tag",
                            "type": "StatusTag",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "statusLabel",
                    "file": "src/app/registratie/domain/registration.policy.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Domain logic for a registration — pure functions, NO Angular. This is where\n&quot;what the business rules say&quot; lives, separate from &quot;how it looks&quot; (UI) and\n&quot;where the data comes from&quot; (infrastructure). Keeping it framework-free means\nit is trivial to read and unit-test.</p>\n",
                    "args": [
                        {
                            "name": "tag",
                            "type": "StatusTag",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "string",
                    "jsdoctags": [
                        {
                            "name": "tag",
                            "type": "StatusTag",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/shared/infrastructure/api-client.provider.ts": [
                {
                    "name": "httpClientFetch",
                    "file": "src/app/shared/infrastructure/api-client.provider.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Adapts Angular&#39;s HttpClient to the fetch-shaped interface the NSwag-generated\nclient expects, so every API call flows through HttpClient interceptors (the\n<code>?scenario=</code> toggle) and the cross-cutting concerns below. The generated client\nis the only place HTTP shapes are known; this is the only place it meets\nAngular&#39;s HTTP stack — i.e. the one seam to add:</p>\n<ul>\n<li>timeout (done — REQUEST_TIMEOUT_MS),</li>\n<li>correlation id (done — X-Correlation-Id, echoed in backend logs),</li>\n<li>idempotency key for writes (done — Idempotency-Key; a real retry would thread\na STABLE key per logical submit so re-sends dedupe; here it&#39;s per-attempt),</li>\n<li>auth: attach <code>Authorization: Bearer …</code> here (one line) when real DigiD lands,</li>\n<li>retry/backoff: wrap the pipe with rxjs <code>retry({ count, delay })</code> here.</li>\n</ul>\n",
                    "args": [
                        {
                            "name": "http",
                            "type": "HttpClient",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "jsdoctags": [
                        {
                            "name": "http",
                            "type": "HttpClient",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "provideApiClient",
                    "file": "src/app/shared/infrastructure/api-client.provider.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Provide a root ApiClient that talks through HttpClient. Base URL comes from the\nenvironment (relative &#39;&#39; in dev → proxy; configurable per deployment).</p>\n",
                    "args": [],
                    "returnType": "Provider"
                }
            ],
            "src/app/auth/domain/session.ts": [
                {
                    "name": "isAuthenticated",
                    "file": "src/app/auth/domain/session.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Session",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/shared/ui/debug-state/mask.ts": [
                {
                    "name": "maskBsn",
                    "file": "src/app/shared/ui/debug-state/mask.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Redact a BSN for the dev state view: keep the last 3 digits, mask the rest.</p>\n",
                    "args": [
                        {
                            "name": "bsn",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "string",
                    "jsdoctags": [
                        {
                            "name": "bsn",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "maskTail",
                    "file": "src/app/shared/ui/debug-state/mask.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Keep the last <code>keep</code> characters, mask the rest.</p>\n",
                    "args": [
                        {
                            "name": "value",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "keep",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "string",
                    "jsdoctags": [
                        {
                            "name": "value",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "keep",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "redactProfile",
                    "file": "src/app/shared/ui/debug-state/mask.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Data minimisation for the dev &quot;show the Model&quot; panel: keep the structural /\ndecision-relevant fields (status, beroep, dates of registration) but redact\ndirect personal identifiers (name, address, date of birth) and mask the BIG\nnumber. The panel is for inspecting state SHAPE, never for reading PII.</p>\n",
                    "args": [
                        {
                            "name": "p",
                            "type": "BigProfile",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "unknown",
                    "jsdoctags": [
                        {
                            "name": "p",
                            "type": "BigProfile",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/shared/ui/debug-state/debug-state.component.ts": [
                {
                    "name": "maskSession",
                    "file": "src/app/shared/ui/debug-state/debug-state.component.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Session | null",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/infrastructure/applications.adapter.ts": [
                {
                    "name": "parseAanvraagStatus",
                    "file": "src/app/registratie/infrastructure/applications.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Trust-boundary parse of the status union — the tag drives which fields must exist.</p>\n",
                    "args": [
                        {
                            "name": "s",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, AanvraagStatus>",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parseApplicationDetail",
                    "file": "src/app/registratie/infrastructure/applications.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "json",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, AanvraagDetail>",
                    "jsdoctags": [
                        {
                            "name": "json",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parseApplications",
                    "file": "src/app/registratie/infrastructure/applications.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "json",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, Aanvraag[]>",
                    "jsdoctags": [
                        {
                            "name": "json",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parseApplicationSummary",
                    "file": "src/app/registratie/infrastructure/applications.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "json",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, Aanvraag>",
                    "jsdoctags": [
                        {
                            "name": "json",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parseCommon",
                    "file": "src/app/registratie/infrastructure/applications.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "dto",
                            "type": "ApplicationSummaryDto",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, Aanvraag>",
                    "jsdoctags": [
                        {
                            "name": "dto",
                            "type": "ApplicationSummaryDto",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/domain/value-objects/big-nummer.ts": [
                {
                    "name": "parseBigNummer",
                    "file": "src/app/registratie/domain/value-objects/big-nummer.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "raw",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, BigNummer>",
                    "jsdoctags": [
                        {
                            "name": "raw",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/infrastructure/brp.adapter.ts": [
                {
                    "name": "parseBrpAddress",
                    "file": "src/app/registratie/infrastructure/brp.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Trust-boundary parse: validate the untrusted response shape. &quot;Geen adres&quot; is a\nvalid outcome (gevonden: false), not a malformed response. ponytail: hand-written;\nreach for a schema lib once the contract count grows.</p>\n",
                    "args": [
                        {
                            "name": "json",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, BrpAddressDto>",
                    "jsdoctags": [
                        {
                            "name": "json",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/infrastructure/dashboard-view.adapter.ts": [
                {
                    "name": "parseDashboardView",
                    "file": "src/app/registratie/infrastructure/dashboard-view.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Trust-boundary parse: validate the untrusted response shape and map the DTO\nonto our own domain model. Hand-written on purpose — no Zod for a single\ncontract. ponytail: reach for a schema lib once the contract count grows.</p>\n",
                    "args": [
                        {
                            "name": "json",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, DashboardView>",
                    "jsdoctags": [
                        {
                            "name": "json",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/infrastructure/duo.adapter.ts": [
                {
                    "name": "parseDuoLookup",
                    "file": "src/app/registratie/infrastructure/duo.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Trust-boundary parse: validate the untrusted response shape (diplomas, each\nwith derived beroep + policy questions, plus the manual-entry fallback).</p>\n",
                    "args": [
                        {
                            "name": "json",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, DuoLookupDto>",
                    "jsdoctags": [
                        {
                            "name": "json",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parseQuestions",
                    "file": "src/app/registratie/infrastructure/duo.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "json",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "[] | null",
                    "jsdoctags": [
                        {
                            "name": "json",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/domain/value-objects/email.ts": [
                {
                    "name": "parseEmail",
                    "file": "src/app/registratie/domain/value-objects/email.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "raw",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, Email>",
                    "jsdoctags": [
                        {
                            "name": "raw",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/domain/value-objects/postcode.ts": [
                {
                    "name": "parsePostcode",
                    "file": "src/app/registratie/domain/value-objects/postcode.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "raw",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, Postcode>",
                    "jsdoctags": [
                        {
                            "name": "raw",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/domain/value-objects/uren.ts": [
                {
                    "name": "parseUren",
                    "file": "src/app/registratie/domain/value-objects/uren.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "raw",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<string, Uren>",
                    "jsdoctags": [
                        {
                            "name": "raw",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/shared/infrastructure/api-error.ts": [
                {
                    "name": "problemDetail",
                    "file": "src/app/shared/infrastructure/api-error.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Extract a human-readable message from a rejected API call. A 4xx/5xx with a\nProblemDetails body (RFC 7807) is thrown by the generated client as the parsed\nobject; anything else falls back to the given message.</p>\n",
                    "args": [
                        {
                            "name": "e",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "fallback",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "string",
                    "jsdoctags": [
                        {
                            "name": "e",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "fallback",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "problemFieldErrors",
                    "file": "src/app/shared/infrastructure/api-error.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>SEAM (G4): map a server validation envelope to field-level errors.</p>\n<p>ASP.NET&#39;s ValidationProblemDetails carries <code>errors: { field: string[] }</code>. The\nbackend today returns only <code>detail</code> (one banner message), so this returns <code>{}</code>.\nWhen the backend starts sending <code>errors</code>, a machine&#39;s <code>SubmitFailed</code> handler can\nmerge this into its own <code>errors</code> map — the field-keyed shape the wizards already\nrender — so a rejection shows inline per field, not just as a banner. The\nconsumer hook is the only thing left to wire; the contract boundary lives here.</p>\n",
                    "args": [
                        {
                            "name": "e",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Record<string, string>",
                    "jsdoctags": [
                        {
                            "name": "e",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/domain/change-request.machine.ts": [
                {
                    "name": "reduce",
                    "file": "src/app/registratie/domain/change-request.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "State",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "m",
                            "type": "Msg",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "State",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "State",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "m",
                            "type": "Msg",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "validate",
                    "file": "src/app/registratie/domain/change-request.machine.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Parse via the value objects; on success hand back a Valid, else per-field errors.</p>\n",
                    "args": [
                        {
                            "name": "draft",
                            "type": "Draft",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Result<Errors, Valid>",
                    "jsdoctags": [
                        {
                            "name": "draft",
                            "type": "Draft",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/auth/application/session.store.ts": [
                {
                    "name": "restore",
                    "file": "src/app/auth/application/session.store.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Restore a persisted session (best-effort; corrupt entry → logged out).\nG2: validate the shape before trusting it. G1: the BSN is never persisted\n(see the effect below), so a restored session carries an empty one — it is\nunused after login; only <code>naam</code> is shown in the chrome.</p>\n",
                    "args": [],
                    "returnType": "Session | null"
                }
            ],
            "src/app/shared/application/submit.ts": [
                {
                    "name": "runSubmit",
                    "file": "src/app/shared/application/submit.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Run a mutating API call and fold it into a <code>Result</code> — the one place the\ntry/catch + ProblemDetails-mapping lives, so every <code>submit-*</code> command is just\nits own payload mapping. The backend re-validates and returns a 422\nProblemDetails on rejection, surfaced here as the error string.</p>\n",
                    "args": [
                        {
                            "name": "fn",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "fallback",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Promise<Result<string, T>>",
                    "jsdoctags": [
                        {
                            "name": "fn",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "fallback",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/shared/upload/upload.adapter.ts": [
                {
                    "name": "simulateUpload",
                    "file": "src/app/shared/upload/upload.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Demo-only (dev): the real XHR POST finishes instantly for metadata, so progress\nand failure can&#39;t otherwise be shown. Drives the progress bar over ~2.5s, then\nsucceeds (<code>upload-slow</code>) or fails (<code>upload-fail</code>). ponytail: timer-based, cancel\nvia the returned handle; no network.</p>\n",
                    "args": [
                        {
                            "name": "scenario",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "onProgress",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "XhrUploadHandle",
                    "jsdoctags": [
                        {
                            "name": "scenario",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "onProgress",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "toCategory",
                    "file": "src/app/shared/upload/upload.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Wire DTO (all fields optional) → domain.</p>\n",
                    "args": [
                        {
                            "name": "c",
                            "type": "DocumentCategoryDto",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "DocumentCategory",
                    "jsdoctags": [
                        {
                            "name": "c",
                            "type": "DocumentCategoryDto",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "toStatusItem",
                    "file": "src/app/shared/upload/upload.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "s",
                            "type": "UploadStatusItemDto",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "StatusItem",
                    "jsdoctags": [
                        {
                            "name": "s",
                            "type": "UploadStatusItemDto",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/shared/infrastructure/api-client.ts": [
                {
                    "name": "throwException",
                    "file": "src/app/shared/infrastructure/api-client.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "message",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "status",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "response",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "headers",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "result",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "returnType": "any",
                    "jsdoctags": [
                        {
                            "name": "message",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "status",
                            "type": "number",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "response",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "headers",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "result",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/registratie/infrastructure/big-register.adapter.ts": [
                {
                    "name": "toAantekening",
                    "file": "src/app/registratie/infrastructure/big-register.adapter.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Map the wire DTO (all fields optional) onto our domain type.</p>\n",
                    "args": [
                        {
                            "name": "n",
                            "type": "AantekeningDto",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Aantekening",
                    "jsdoctags": [
                        {
                            "name": "n",
                            "type": "AantekeningDto",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "src/app/shared/layout/breadcrumb/breadcrumb-trail.ts": [
                {
                    "name": "trailFor",
                    "file": "src/app/shared/layout/breadcrumb/breadcrumb-trail.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Build the breadcrumb trail for a router url (query/fragment stripped).\nReturns [] for unknown routes (e.g. /login) so the bar can hide itself.</p>\n",
                    "args": [
                        {
                            "name": "url",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "BreadcrumbItem[]",
                    "jsdoctags": [
                        {
                            "name": "url",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ]
        },
        "groupedEnumerations": {},
        "groupedTypeAliases": {
            "src/app/registratie/domain/registration.ts": [
                {
                    "name": "AantekeningType",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"Specialisme\" | \"Aantekening\"",
                    "file": "src/app/registratie/domain/registration.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>A note is either a recognised specialism or a plain annotation — a closed set,\nnot an open string, so a typo can&#39;t slip through.</p>\n",
                    "kind": 193
                },
                {
                    "name": "RegistrationStatus",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type",
                    "file": "src/app/registratie/domain/registration.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Registration status as a discriminated union: each variant owns exactly the\ndata that makes sense for it. Only an active (Geregistreerd) registration has\na herregistratie date; a struck-off (Doorgehaald) one cannot carry one. The\nold flat interface allowed that impossible combination — this makes it\nunrepresentable.</p>\n",
                    "kind": 193
                },
                {
                    "name": "StatusTag",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "RegistrationStatus",
                    "file": "src/app/registratie/domain/registration.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Just the discriminant — for atoms that only need the label/color.</p>\n",
                    "kind": 200
                }
            ],
            "src/app/registratie/domain/aanvraag.ts": [
                {
                    "name": "AanvraagStatus",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type | literal type",
                    "file": "src/app/registratie/domain/aanvraag.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                },
                {
                    "name": "AanvraagType",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"registratie\" | \"herregistratie\" | \"intake\"",
                    "file": "src/app/registratie/domain/aanvraag.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>An application (aanvraag) as the frontend sees it — the parsed, domain-side view\nof the backend-owned aggregate (see backend ApplicationStore + PRD 0001). Pure\ntypes, no Angular. Lives in <code>registratie</code> because the dashboard (here) is the\nconsumer and the downstream wizards (<code>herregistratie → registratie</code>) produce them.</p>\n<p>The status is a discriminated union so illegal states are unrepresentable — same\nreflex as RemoteData. The server computes which tag applies (auto-approval on\nread); the FE renders it, it does not recompute the lifecycle.</p>\n",
                    "kind": 193
                }
            ],
            "src/app/registratie/ui/address-fields/address-fields.component.ts": [
                {
                    "name": "AdresErrors",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "Partial<Record<AdresValue, string>>",
                    "file": "src/app/registratie/ui/address-fields/address-fields.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 184
                }
            ],
            "src/app/registratie/domain/registratie-wizard.machine.ts": [
                {
                    "name": "AdresHerkomst",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"brp\" | \"handmatig\"",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Where a piece of data came from — recorded on the aggregate (PRD §5).</p>\n",
                    "kind": 193
                },
                {
                    "name": "Correspondentie",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"email\" | \"post\"",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                },
                {
                    "name": "DiplomaHerkomst",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"duo\" | \"handmatig\"",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                },
                {
                    "name": "DraftField",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"straat\" | \"postcode\" | \"woonplaats\" | \"email\"",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Text fields settable via SetField.</p>\n",
                    "kind": 193
                },
                {
                    "name": "RegistratieMsg",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                },
                {
                    "name": "RegistratieState",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type | literal type",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                },
                {
                    "name": "StepId",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"adres\" | \"beroep\" | \"controle\"",
                    "file": "src/app/registratie/domain/registratie-wizard.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>A FIXED 3-step registration wizard. The steps never change in number (always\n<code>STEPS</code>): (1) adres + correspondentievoorkeur, (2) beroep o.b.v. diploma,\n(3) controle &amp; indienen. Follow-up questions appear <em>inline within a step</em>\n(e.g. choosing &#39;email&#39; reveals the e-mail field). &quot;Is this field required\nright now&quot; is a pure function (<code>validateStep</code>), so it is trivial to test and\nimpossible to get out of sync with the data. Invariants live here, not in the\nUI: the wizard reaches <code>Indienen</code> only when a complete <code>ValidRegistratie</code> parses.</p>\n",
                    "kind": 193
                }
            ],
            "src/app/shared/ui/alert/alert.component.ts": [
                {
                    "name": "AlertType",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"info\" | \"ok\" | \"warning\" | \"error\"",
                    "file": "src/app/shared/ui/alert/alert.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                }
            ],
            "src/app/shared/ui/upload/upload-status-banner/upload-status-banner.component.ts": [
                {
                    "name": "AlertType",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"info\" | \"ok\" | \"warning\" | \"error\"",
                    "file": "src/app/shared/ui/upload/upload-status-banner/upload-status-banner.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                },
                {
                    "name": "BannerType",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"info\" | \"warning\" | \"error\"",
                    "file": "src/app/shared/ui/upload/upload-status-banner/upload-status-banner.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                }
            ],
            "src/app/registratie/domain/value-objects/big-nummer.ts": [
                {
                    "name": "BigNummer",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "Brand<string | BigNummer>",
                    "file": "src/app/registratie/domain/value-objects/big-nummer.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Value object: a BIG registration number — 11 digits.</p>\n",
                    "kind": 184
                }
            ],
            "src/app/registratie/domain/block-actions.ts": [
                {
                    "name": "BlockAction",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"resume\" | \"cancel\" | \"viewDocuments\"",
                    "file": "src/app/registratie/domain/block-actions.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>What a dashboard &quot;Mijn aanvragen&quot; block offers per status. The badge itself\nfollows directly from <code>status.tag</code> (the UI maps tag → colour + label), so this\npure function owns only the <em>actions</em> decision.</p>\n",
                    "kind": 193
                }
            ],
            "src/app/shared/kernel/fp.ts": [
                {
                    "name": "Brand",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "unknown",
                    "file": "src/app/shared/kernel/fp.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Nominal typing: Brand&lt;string, &#39;Postcode&#39;&gt; is assignable from a plain string\nonly through an explicit cast — so a smart constructor is the only minter.</p>\n",
                    "kind": 194
                },
                {
                    "name": "Result",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type",
                    "file": "src/app/shared/kernel/fp.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>A computation that either succeeded with a value or failed with an error.\nPlain objects (no classes) to match the signal/httpResource ergonomics.</p>\n",
                    "kind": 193
                }
            ],
            "src/app/brief/domain/brief.machine.ts": [
                {
                    "name": "BriefMsg",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                },
                {
                    "name": "BriefState",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type",
                    "file": "src/app/brief/domain/brief.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The letter composition state machine (Model + Msg + pure reduce), modeled on\n<code>herregistratie/domain/intake.machine.ts</code>.</p>\n<p>Two invariants are enforced <em>here</em>, not in the UI:</p>\n<ul>\n<li>Status transitions are total and guarded — an out-of-order transition Msg is a\nno-op (<code>draft→submitted→approved/rejected→draft</code>, <code>approved→sent</code>).</li>\n<li>Edits are only possible in <code>draft</code>/<code>rejected</code>; editing a <code>rejected</code> letter flips\nit back to <code>draft</code>. Sections can never be added, removed, or reordered — there\nis no Msg for it, so it is unrepresentable.</li>\n</ul>\n<p>Role (drafter vs approver) is NOT a reducer concern: the UI derives <code>editable</code> from\nrole+status and simply doesn&#39;t dispatch edits when the actor may not edit. The\nreducer guards the status invariant; the UI guards the role invariant.</p>\n<p>Note: there is no <code>PlaceholderInserted</code> Msg. The editor inserts a placeholder NODE\nat the caret and emits the whole new block via <code>BlockContentEdited</code>; its insert menu\nonly offers keys from <code>brief.placeholders</code>, so inserting an unknown key is\nstructurally impossible (a pasted <code>{{…}}</code> is caught by the linter as <code>malformed</code>).</p>\n",
                    "kind": 193
                }
            ],
            "src/app/brief/domain/brief.ts": [
                {
                    "name": "BriefStatus",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type | literal type | literal type",
                    "file": "src/app/brief/domain/brief.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The approval state machine as a sum type — transitions are total and guarded in\n<code>brief.machine.ts</code>; illegal transitions are unrepresentable.</p>\n",
                    "kind": 193
                },
                {
                    "name": "LetterBlock",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type",
                    "file": "src/app/brief/domain/brief.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>A block inside a letter section: a frozen passage snapshot, or free text.</p>\n",
                    "kind": 193
                },
                {
                    "name": "PassageScope",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"global\" | \"beroep\"",
                    "file": "src/app/brief/domain/brief.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The <code>Brief</code> (letter) entity and its derived selectors.</p>\n<p>A letter has a FIXED section structure (from a template, server-instantiated); the\ndrafter fills a skeleton, never reorders sections. Each block is either a frozen\nsnapshot of a library passage (provenance kept) or free text. Everything the UI\nneeds beyond the stored shape — diagnostics, unresolved placeholders, whether it\ncan be submitted — is DERIVED here, never stored.</p>\n",
                    "kind": 193
                }
            ],
            "src/app/shared/upload/upload.machine.ts": [
                {
                    "name": "DeliveryChannel",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"digital\" | \"post\"",
                    "file": "src/app/shared/upload/upload.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                },
                {
                    "name": "UploadMsg",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type",
                    "file": "src/app/shared/upload/upload.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                },
                {
                    "name": "UploadStatus",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type | literal type | literal type | literal type | literal type",
                    "file": "src/app/shared/upload/upload.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Pure upload domain (no Angular). Reusable across wizards: the host wizard folds\n<code>UploadState</code> into its Model and delegates upload <code>Msg</code>s to <code>reduceUpload</code>.\nIllegal states are unrepresentable by construction; the few transitions a union\ncan&#39;t express (channel↔upload exclusivity, single-file categories) are enforced\nhere in the reducer. Effects live in the shell (upload-shell.service.ts).</p>\n",
                    "kind": 193
                }
            ],
            "src/app/brief/domain/placeholders.ts": [
                {
                    "name": "DiagnosticCode",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"malformed\" | \"unknown-placeholder\" | \"not-fillable\" | \"deprecated\" | \"unresolved-at-send\"",
                    "file": "src/app/brief/domain/placeholders.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                },
                {
                    "name": "DiagnosticSeverity",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"error\" | \"warning\"",
                    "file": "src/app/brief/domain/placeholders.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                }
            ],
            "src/app/shared/upload/upload-shell.service.ts": [
                {
                    "name": "Dispatch",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "function",
                    "file": "src/app/shared/upload/upload-shell.service.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 185
                }
            ],
            "src/app/registratie/domain/value-objects/email.ts": [
                {
                    "name": "Email",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "Brand<string | Email>",
                    "file": "src/app/registratie/domain/value-objects/email.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Value object: an e-mail address. &quot;Parse, don&#39;t validate&quot; — an Email is a\ndistinct type from a raw string, mintable only via parseEmail, so holding one\nis proof it is well-formed. Format-only check (the FE keeps format validation\nfor instant feedback; the backend stays the authority — see ADR-0001).</p>\n",
                    "kind": 184
                }
            ],
            "src/app/registratie/application/applications.store.ts": [
                {
                    "name": "Err",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "Error | undefined",
                    "file": "src/app/registratie/application/applications.store.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                }
            ],
            "src/app/registratie/application/big-profile.store.ts": [
                {
                    "name": "Err",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "Error | undefined",
                    "file": "src/app/registratie/application/big-profile.store.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                }
            ],
            "src/app/registratie/application/registratie-lookup.store.ts": [
                {
                    "name": "Err",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "Error | undefined",
                    "file": "src/app/registratie/application/registratie-lookup.store.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                }
            ],
            "src/app/herregistratie/domain/intake.machine.ts": [
                {
                    "name": "Errors",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "Partial<Record<Answers, string>>",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Per-field error map: one message per question, since a step holds several.</p>\n",
                    "kind": 184
                },
                {
                    "name": "IntakeMsg",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                },
                {
                    "name": "IntakeState",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type | literal type",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                },
                {
                    "name": "JaNee",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"ja\" | \"nee\"",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>A FIXED 3-step wizard with progressive disclosure. The steps never change in\nnumber (always <code>STEPS</code>); instead, follow-up questions appear <em>inline within a\nstep</em> depending on earlier answers — answer &quot;buiten Nederland gewerkt? → ja&quot;\nand the country/hours questions reveal in the same step; report few hours and\nthe scholing-question reveals inside the &#39;werk&#39; step. &quot;Is this field required\nright now&quot; is a pure function (<code>validateStep</code>/<code>lageUren</code>), so it&#39;s trivial to\ntest and impossible to get out of sync with the data.</p>\n",
                    "kind": 193
                },
                {
                    "name": "StepId",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"buitenland\" | \"werk\" | \"review\"",
                    "file": "src/app/herregistratie/domain/intake.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The three fixed steps. Each step groups one or more questions.</p>\n",
                    "kind": 193
                }
            ],
            "src/app/registratie/domain/change-request.machine.ts": [
                {
                    "name": "Errors",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "Partial<Record<Draft, string>>",
                    "file": "src/app/registratie/domain/change-request.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 184
                },
                {
                    "name": "Msg",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type | literal type | literal type | literal type | literal type",
                    "file": "src/app/registratie/domain/change-request.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                },
                {
                    "name": "State",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type | literal type",
                    "file": "src/app/registratie/domain/change-request.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The change-request (adreswijziging) form as one tagged union — the SAME idiom\nas the wizards, just single-step. <code>draft</code>/<code>errors</code> exist only while Editing;\nSubmitting/Submitted/Failed carry the parsed <code>Valid</code>. Illegal states (submitting\nan invalid draft, a success screen with errors) are unrepresentable.</p>\n",
                    "kind": 193
                }
            ],
            "src/app/shared/kernel/rich-text.ts": [
                {
                    "name": "Mark",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"bold\" | \"italic\" | \"underline\"",
                    "file": "src/app/shared/kernel/rich-text.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Rich text as a <em>serialisable value</em>, not opaque HTML.</p>\n<p>A block is a node tree. Because a placeholder is a first-class NODE (not a\n<code>{{token}}</code> substring hidden inside a string), highlighting it, inserting it,\nand linting it are all pure functions over data — no regex over markup. This\nis the whole reason the letter feature stays in the &quot;impossible states&quot; style:\nthe value the app holds is always well-shaped, and the imperative editor is\nquarantined behind one component that converts to/from this tree.</p>\n",
                    "kind": 193
                },
                {
                    "name": "RichTextNode",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type",
                    "file": "src/app/shared/kernel/rich-text.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                }
            ],
            "src/app/registratie/domain/value-objects/postcode.ts": [
                {
                    "name": "Postcode",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "Brand<string | Postcode>",
                    "file": "src/app/registratie/domain/value-objects/postcode.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Value object: a Dutch postcode. &quot;Parse, don&#39;t validate&quot; — a Postcode is a\ndistinct type from a raw string, mintable only via parsePostcode, so holding\none is proof it is well-formed.</p>\n",
                    "kind": 184
                }
            ],
            "src/app/brief/ui/letter-preview/letter-preview.component.ts": [
                {
                    "name": "PreviewSegment",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type",
                    "file": "src/app/brief/ui/letter-preview/letter-preview.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>A run of consecutive lines to render together: a list (bullet/number) or a single plain line.</p>\n",
                    "kind": 188
                }
            ],
            "src/app/registratie/contracts/dashboard-view.dto.ts": [
                {
                    "name": "RegistrationStatusDto",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type",
                    "file": "src/app/registratie/contracts/dashboard-view.dto.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>WIRE CONTRACT for the dashboard screen — the &quot;BFF-lite&quot; response.</p>\n<p>PURE wire shapes: this file imports NOTHING (CLAUDE.md §1, ADR-0001). Enums are\ninlined string-literal unions that describe the wire, not the domain. The\nadapter&#39;s <code>parseDashboardView</code> validates this untrusted shape and MAPS it onto\nthe FE domain model (Registration/Person/BigProfile) — that map is the\ndecoupling seam: the wire can change without the domain following.</p>\n<p>In production these types are GENERATED from the OpenAPI/TypeSpec spec (one\nsource of truth for both sides), and the <code>decisions</code> block is computed BY THE\nBACKEND — never recomputed on the client. The frontend renders decisions; it\ndoes not own the rules. See docs/architecture/0001-bff-lite-decision-dtos.md.</p>\n<p>One screen-shaped call replaces the previous three (BIG-register + BRP + …),\nso the page always sees one consistent snapshot instead of three independently\nloading/erroring resources.</p>\n",
                    "kind": 193
                }
            ],
            "src/app/shared/application/remote-data.ts": [
                {
                    "name": "RemoteData",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type | literal type",
                    "file": "src/app/shared/application/remote-data.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The four mutually-exclusive states of an async fetch, as a tagged union.\nCrucially the data lives ON the state: only <code>Failure</code> has an <code>error</code>, only\n<code>Success</code> has a <code>value</code>. &quot;Loaded but no value&quot; or &quot;error with stale value&quot;\nare unrepresentable — Richard Feldman&#39;s RemoteData.</p>\n",
                    "kind": 193
                }
            ],
            "src/app/shared/domain/role.ts": [
                {
                    "name": "Role",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"drafter\" | \"approver\"",
                    "file": "src/app/shared/domain/role.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The two-person letter workflow&#39;s role: who is acting, a drafter or an approver.\nA pure domain type (no framework, no reading mechanism) — the <code>?role=</code> reader and\nthe X-Role header live in shared/infrastructure/role.ts. Consumers (brief.store,\nletter-composer) depend on this type, not on how the role is obtained.</p>\n",
                    "kind": 193
                }
            ],
            "src/app/shared/infrastructure/scenario.ts": [
                {
                    "name": "Scenario",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"default\" | \"slow\" | \"loading\" | \"empty\" | \"error\" | \"upload-slow\" | \"upload-fail\"",
                    "file": "src/app/shared/infrastructure/scenario.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                }
            ],
            "src/app/herregistratie/domain/herregistratie.machine.ts": [
                {
                    "name": "StepErrors",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "Partial<Record<unknown | \"documenten\", string>>",
                    "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 184
                },
                {
                    "name": "WizardMsg",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type | literal type",
                    "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Every event that can happen to the wizard, as one message type. The component\nsends a WizardMsg; <code>reduce</code> decides the next state. This is the Elm\nModel+Msg+update pattern: ONE pure function describes all state changes.</p>\n",
                    "kind": 193
                },
                {
                    "name": "WizardState",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type | literal type | literal type | literal type",
                    "file": "src/app/herregistratie/domain/herregistratie.machine.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The whole wizard as one tagged union. <code>step</code> and <code>errors</code> exist ONLY while\nEditing; Submitting/Submitted/Failed carry a <code>Valid</code> payload and nothing else.\nSo &quot;submitting while a field is invalid&quot; or &quot;showing the success screen with\nerrors set&quot; are unrepresentable — the bug class is gone by construction.</p>\n",
                    "kind": 193
                }
            ],
            "src/app/registratie/domain/value-objects/uren.ts": [
                {
                    "name": "Uren",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "Brand<number | Uren>",
                    "file": "src/app/registratie/domain/value-objects/uren.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Value object: a non-negative whole number of hours.</p>\n",
                    "kind": 184
                }
            ],
            "src/app/shared/ui/button/button.component.ts": [
                {
                    "name": "Variant",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"primary\" | \"secondary\" | \"subtle\" | \"danger\"",
                    "file": "src/app/shared/ui/button/button.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                }
            ],
            "src/app/shared/layout/wizard-shell/wizard-shell.component.ts": [
                {
                    "name": "WizardStatus",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"editing\" | \"submitting\" | \"submitted\" | \"failed\"",
                    "file": "src/app/shared/layout/wizard-shell/wizard-shell.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                }
            ]
        }
    },
    "routes": {
        "name": "<root>",
        "kind": "module",
        "children": [
            {
                "name": "ShellComponent",
                "kind": "component",
                "filename": "src/app/app.routes.ts"
            },
            {
                "name": "login",
                "kind": "route-path",
                "filename": "src/app/app.routes.ts"
            },
            {
                "name": "dashboard",
                "kind": "route-path",
                "filename": "src/app/app.routes.ts"
            },
            {
                "name": "registratie",
                "kind": "route-path",
                "filename": "src/app/app.routes.ts"
            },
            {
                "name": "registreren",
                "kind": "route-path",
                "filename": "src/app/app.routes.ts"
            },
            {
                "name": "herregistratie",
                "kind": "route-path",
                "filename": "src/app/app.routes.ts"
            },
            {
                "name": "intake",
                "kind": "route-path",
                "filename": "src/app/app.routes.ts"
            },
            {
                "name": "brief",
                "kind": "route-path",
                "filename": "src/app/app.routes.ts"
            },
            {
                "name": "concepts",
                "kind": "route-path",
                "filename": "src/app/app.routes.ts"
            },
            {
                "name": "**",
                "kind": "route-path",
                "filename": "src/app/app.routes.ts"
            },
            {
                "name": "login",
                "kind": "route-redirect",
                "filename": "src/app/app.routes.ts"
            },
            {
                "name": "login",
                "kind": "route-redirect",
                "filename": "src/app/app.routes.ts"
            }
        ]
    },
    "coverage": {
        "count": 36,
        "status": "medium",
        "files": [
            {
                "filePath": "src/app/app.config.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "appConfig",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/app.routes.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "routes",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/app.ts",
                "type": "component",
                "linktype": "component",
                "name": "App",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/auth/application/session.store.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "SessionStore",
                "coveragePercent": 25,
                "coverageCount": "2/8",
                "status": "low"
            },
            {
                "filePath": "src/app/auth/application/session.store.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "restore",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/auth/application/session.store.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "STORAGE_KEY",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/auth/auth.guard.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "authGuard",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/auth/domain/session.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Session",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/auth/domain/session.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "isAuthenticated",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/auth/infrastructure/digid.adapter.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "DigidAdapter",
                "coveragePercent": 50,
                "coverageCount": "1/2",
                "status": "medium"
            },
            {
                "filePath": "src/app/auth/ui/login-form/login-form.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "LoginFormComponent",
                "coveragePercent": 25,
                "coverageCount": "1/4",
                "status": "low"
            },
            {
                "filePath": "src/app/auth/ui/login.page.ts",
                "type": "component",
                "linktype": "component",
                "name": "LoginPage",
                "coveragePercent": 0,
                "coverageCount": "0/5",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/application/brief.store.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "BriefStore",
                "coveragePercent": 24,
                "coverageCount": "6/25",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "addFreeText",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "editBlockContent",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "insertPassages",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "isEditable",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "isSectionEditable",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "mapBlocks",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "mapSection",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "moveWithinSection",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "nextLocalIndex",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "reduce",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "sectionKeyOfBlock",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "transition",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "withEdit",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "initial",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "BriefMsg",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/brief.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "BriefState",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/domain/brief.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Brief",
                "coveragePercent": 0,
                "coverageCount": "0/8",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/brief.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "LetterSection",
                "coveragePercent": 0,
                "coverageCount": "0/6",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/brief.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "LibraryPassage",
                "coveragePercent": 12,
                "coverageCount": "1/8",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/brief.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "allBlocks",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/brief.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "allDiagnostics",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/domain/brief.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "canSubmit",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/domain/brief.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "hasBlockingErrors",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/brief.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "unresolvedPlaceholders",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/domain/brief.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "BriefStatus",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/domain/brief.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "LetterBlock",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/domain/brief.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "PassageScope",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/domain/placeholders.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Diagnostic",
                "coveragePercent": 0,
                "coverageCount": "0/6",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/placeholders.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "DiagnosticLocation",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/placeholders.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "PlaceholderDef",
                "coveragePercent": 16,
                "coverageCount": "1/6",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/placeholders.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "diag",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/placeholders.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "lintPlaceholders",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/domain/placeholders.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "messageFor",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/placeholders.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "severityOf",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/domain/placeholders.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "RAW_BRACES",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/placeholders.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "DiagnosticCode",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/domain/placeholders.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "DiagnosticSeverity",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "BriefAdapter",
                "coveragePercent": 11,
                "coverageCount": "1/9",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "BriefView",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "blockToDto",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "contentToDto",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "nodeToDto",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseBlock",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseBlockContent",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseBrief",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseBriefView",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseNode",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parsePassage",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parsePlaceholderDef",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseSection",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseStatus",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "sectionToDto",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "BRIEF_ACTION_FAILED",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "BRIEF_LOAD_FAILED",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/infrastructure/brief.adapter.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "MARKS",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/ui/brief.page.ts",
                "type": "component",
                "linktype": "component",
                "name": "BriefPage",
                "coveragePercent": 11,
                "coverageCount": "2/18",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/ui/diagnostics-panel/diagnostics-panel.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "DiagnosticsPanelComponent",
                "coveragePercent": 12,
                "coverageCount": "1/8",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/ui/letter-block/letter-block.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "LetterBlockComponent",
                "coveragePercent": 12,
                "coverageCount": "1/8",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/ui/letter-composer/letter-composer.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "LetterComposerComponent",
                "coveragePercent": 3,
                "coverageCount": "1/27",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/ui/letter-preview/letter-preview.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "LetterPreviewComponent",
                "coveragePercent": 7,
                "coverageCount": "1/14",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/ui/letter-preview/letter-preview.component.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "groupParagraphs",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/ui/letter-preview/letter-preview.component.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "SAMPLE_VALUES",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/ui/letter-preview/letter-preview.component.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "PreviewSegment",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/brief/ui/letter-section/letter-section.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "LetterSectionComponent",
                "coveragePercent": 6,
                "coverageCount": "1/15",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/ui/passage-picker/passage-picker.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "PassagePickerComponent",
                "coveragePercent": 10,
                "coverageCount": "1/10",
                "status": "low"
            },
            {
                "filePath": "src/app/brief/ui/rejection-comments/rejection-comments.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "RejectionCommentsComponent",
                "coveragePercent": 10,
                "coverageCount": "1/10",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/application/intake-policy.store.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "IntakePolicyStore",
                "coveragePercent": 25,
                "coverageCount": "1/4",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Draft",
                "coveragePercent": 25,
                "coverageCount": "1/4",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Valid",
                "coveragePercent": 20,
                "coverageCount": "1/5",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "back",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "gaNaarStap",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "hasProgress",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "next",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "reduce",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "resolve",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "setField",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "submit",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "upload",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "validate",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "initial",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "StepErrors",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "WizardMsg",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/herregistratie.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "WizardState",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Answers",
                "coveragePercent": 14,
                "coverageCount": "1/7",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "ValidIntake",
                "coveragePercent": 14,
                "coverageCount": "1/7",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "back",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "currentStep",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "gaNaarStap",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "hasProgress",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "lageUren",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "next",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "reduce",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "resolve",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "setAnswer",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "setPolicy",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "submit",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "validateAll",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "validateStep",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "initial",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "SCHOLING_THRESHOLD_DEFAULT",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "STEPS",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Errors",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "IntakeMsg",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "IntakeState",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "JaNee",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/domain/intake.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "StepId",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/herregistratie/infrastructure/intake-policy.adapter.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "IntakePolicyAdapter",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/herregistratie/ui/herregistratie-wizard/herregistratie-wizard.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "HerregistratieWizardComponent",
                "coveragePercent": 21,
                "coverageCount": "7/32",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/ui/herregistratie.page.ts",
                "type": "component",
                "linktype": "component",
                "name": "HerregistratiePage",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/herregistratie/ui/intake-wizard/intake-wizard.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "IntakeWizardComponent",
                "coveragePercent": 22,
                "coverageCount": "7/31",
                "status": "low"
            },
            {
                "filePath": "src/app/herregistratie/ui/intake.page.ts",
                "type": "component",
                "linktype": "component",
                "name": "IntakePage",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/application/applications.store.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "ApplicationsStore",
                "coveragePercent": 50,
                "coverageCount": "4/8",
                "status": "medium"
            },
            {
                "filePath": "src/app/registratie/application/applications.store.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Err",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/application/big-profile.store.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "BigProfileStore",
                "coveragePercent": 42,
                "coverageCount": "6/14",
                "status": "medium"
            },
            {
                "filePath": "src/app/registratie/application/big-profile.store.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Err",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/application/draft-sync.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "DraftSnapshot",
                "coveragePercent": 20,
                "coverageCount": "1/5",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/application/draft-sync.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "DraftSyncDeps",
                "coveragePercent": 60,
                "coverageCount": "3/5",
                "status": "good"
            },
            {
                "filePath": "src/app/registratie/application/draft-sync.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "createDraftSync",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/application/draft-sync.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "DEBOUNCE_MS",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/application/registratie-lookup.store.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "RegistratieLookupStore",
                "coveragePercent": 55,
                "coverageCount": "5/9",
                "status": "good"
            },
            {
                "filePath": "src/app/registratie/application/registratie-lookup.store.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Err",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/application/submit-change-request.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "createSubmitChangeRequest",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/contracts/brp-address.dto.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "BrpAddressDto",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/registratie/contracts/dashboard-view.dto.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "AdresDto",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/contracts/dashboard-view.dto.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "DashboardViewDto",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/contracts/dashboard-view.dto.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "HerregistratieDecisions",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/registratie/contracts/dashboard-view.dto.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "PersonDto",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/contracts/dashboard-view.dto.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "RegistrationDto",
                "coveragePercent": 0,
                "coverageCount": "0/7",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/contracts/dashboard-view.dto.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "RegistrationStatusDto",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/contracts/duo-diplomas.dto.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "DuoDiplomaDto",
                "coveragePercent": 0,
                "coverageCount": "0/7",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/contracts/duo-diplomas.dto.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "DuoLookupDto",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/registratie/contracts/duo-diplomas.dto.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "ManualDiplomaPolicyDto",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/contracts/duo-diplomas.dto.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "PolicyQuestionDto",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/aanvraag.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Aanvraag",
                "coveragePercent": 0,
                "coverageCount": "0/8",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/aanvraag.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "AanvraagDetail",
                "coveragePercent": 50,
                "coverageCount": "1/2",
                "status": "medium"
            },
            {
                "filePath": "src/app/registratie/domain/aanvraag.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "AanvraagStatus",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/aanvraag.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "AanvraagType",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/big-profile.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "BigProfile",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/registratie/domain/block-actions.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "blockActions",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/block-actions.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "BlockAction",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/change-request.machine.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Draft",
                "coveragePercent": 25,
                "coverageCount": "1/4",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/change-request.machine.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Valid",
                "coveragePercent": 25,
                "coverageCount": "1/4",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/change-request.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "reduce",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/change-request.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "validate",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/change-request.machine.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "initial",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/change-request.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Errors",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/change-request.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Msg",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/change-request.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "State",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/person.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Adres",
                "coveragePercent": 25,
                "coverageCount": "1/4",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/person.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Person",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Draft",
                "coveragePercent": 8,
                "coverageCount": "1/12",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Errors",
                "coveragePercent": 11,
                "coverageCount": "1/9",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "ValidRegistratie",
                "coveragePercent": 10,
                "coverageCount": "1/10",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "back",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "currentStep",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "declareerBeroep",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "gaNaarStap",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "hasProgress",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "kiesDiploma",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "kiesHandmatig",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "next",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "prefillAdres",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "reduce",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "resolve",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "setAntwoord",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "setCorrespondentie",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "setField",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "submit",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "upload",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "validateAll",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "validateStep",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "emptyDraft",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "initial",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "STEPS",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "AdresHerkomst",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Correspondentie",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "DiplomaHerkomst",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "DraftField",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "RegistratieMsg",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "RegistratieState",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registratie-wizard.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "StepId",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registration.policy.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "herregistratieDeadline",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registration.policy.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "isHerregistratieEligible",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registration.policy.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "isStatusConsistent",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registration.policy.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "statusColor",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registration.policy.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "statusLabel",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registration.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Aantekening",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registration.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Registration",
                "coveragePercent": 0,
                "coverageCount": "0/7",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/registration.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "AantekeningType",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registration.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "RegistrationStatus",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/registration.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "StatusTag",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/tasks.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "PortalTask",
                "coveragePercent": 20,
                "coverageCount": "1/5",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/tasks.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "formatNL",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/tasks.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "tasksFromProfile",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/value-objects/big-nummer.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseBigNummer",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/value-objects/big-nummer.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "BigNummer",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/value-objects/email.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseEmail",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/value-objects/email.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Email",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/value-objects/postcode.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parsePostcode",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/value-objects/postcode.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Postcode",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/domain/value-objects/uren.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseUren",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/domain/value-objects/uren.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Uren",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/infrastructure/applications.adapter.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "ApplicationsAdapter",
                "coveragePercent": 62,
                "coverageCount": "5/8",
                "status": "good"
            },
            {
                "filePath": "src/app/registratie/infrastructure/applications.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseAanvraagStatus",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/infrastructure/applications.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseApplicationDetail",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/infrastructure/applications.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseApplications",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/infrastructure/applications.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseApplicationSummary",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/infrastructure/applications.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseCommon",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/infrastructure/applications.adapter.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "AANVRAAG_TYPES",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/infrastructure/big-register.adapter.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "BigRegisterAdapter",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/registratie/infrastructure/big-register.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "toAantekening",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/infrastructure/brp.adapter.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "BrpAdapter",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/registratie/infrastructure/brp.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseBrpAddress",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/infrastructure/change-request.adapter.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "ChangeRequestAdapter",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/registratie/infrastructure/dashboard-view.adapter.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "DashboardViewAdapter",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/registratie/infrastructure/dashboard-view.adapter.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "DashboardView",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/registratie/infrastructure/dashboard-view.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseDashboardView",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/infrastructure/duo.adapter.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "DuoAdapter",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/registratie/infrastructure/duo.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseDuoLookup",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/infrastructure/duo.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "parseQuestions",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/ui/aanvraag-block/aanvraag-block.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "AanvraagBlockComponent",
                "coveragePercent": 18,
                "coverageCount": "2/11",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/ui/aanvraag-block/aanvraag-block.component.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "formatNL",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/ui/aanvraag-block/aanvraag-block.component.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "TYPE_LABELS",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/ui/address-fields/address-fields.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "AddressFieldsComponent",
                "coveragePercent": 33,
                "coverageCount": "2/6",
                "status": "medium"
            },
            {
                "filePath": "src/app/registratie/ui/address-fields/address-fields.component.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "AdresValue",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/ui/address-fields/address-fields.component.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "AdresErrors",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/ui/change-request-form/change-request-form.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ChangeRequestFormComponent",
                "coveragePercent": 25,
                "coverageCount": "4/16",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/ui/dashboard.page.ts",
                "type": "component",
                "linktype": "component",
                "name": "DashboardPage",
                "coveragePercent": 35,
                "coverageCount": "5/14",
                "status": "medium"
            },
            {
                "filePath": "src/app/registratie/ui/registratie-wizard/registratie-wizard.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "RegistratieWizardComponent",
                "coveragePercent": 24,
                "coverageCount": "12/50",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/ui/registratie-wizard/registratie-wizard.component.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "HANDMATIG",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/ui/registratie-wizard/registratie-wizard.component.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "KANALEN",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/ui/registratie-wizard/registratie-wizard.component.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "NL_TAALVAARDIGHEID_VRAAG",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/ui/registratie.page.ts",
                "type": "component",
                "linktype": "component",
                "name": "RegistratiePage",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/registratie/ui/registration-detail.page.ts",
                "type": "component",
                "linktype": "component",
                "name": "RegistrationDetailPage",
                "coveragePercent": 0,
                "coverageCount": "0/2",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/ui/registration-summary/registration-summary.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "RegistrationSummaryComponent",
                "coveragePercent": 25,
                "coverageCount": "1/4",
                "status": "low"
            },
            {
                "filePath": "src/app/registratie/ui/registration-table/registration-table.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "RegistrationTableComponent",
                "coveragePercent": 50,
                "coverageCount": "1/2",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/application/remote-data.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "andThen",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/application/remote-data.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "foldRemote",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/application/remote-data.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "fromResource",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/application/remote-data.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "map",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/application/remote-data.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "map2",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/application/remote-data.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "map3",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/application/remote-data.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "RemoteData",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/application/session.port.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "SessionPort",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/application/session.port.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "SESSION_PORT",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/application/store.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Store",
                "coveragePercent": 100,
                "coverageCount": "3/3",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/application/store.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "createStore",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/application/submit.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "runSubmit",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/application/submit.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "SUBMIT_FAILED",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/domain/role.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Role",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.provider.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "httpClientFetch",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.provider.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "provideApiClient",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.provider.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "REQUEST_TIMEOUT_MS",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "class",
                "linktype": "classe",
                "name": "ApiClient",
                "coveragePercent": 0,
                "coverageCount": "0/63",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "class",
                "linktype": "classe",
                "name": "SwaggerException",
                "coveragePercent": 0,
                "coverageCount": "0/9",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "AantekeningDto",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "AanvraagStatusDto",
                "coveragePercent": 0,
                "coverageCount": "0/7",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "AdresDto",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "ApplicationDetailDto",
                "coveragePercent": 0,
                "coverageCount": "0/9",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "ApplicationSummaryDto",
                "coveragePercent": 0,
                "coverageCount": "0/8",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "BriefDto",
                "coveragePercent": 0,
                "coverageCount": "0/8",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "BriefStatusDto",
                "coveragePercent": 0,
                "coverageCount": "0/10",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "BriefViewDto",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "BrpAddressDto",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "ChangeRequestRequest",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "CreateApplicationRequest",
                "coveragePercent": 0,
                "coverageCount": "0/2",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "DashboardViewDto",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "DocumentCategoryDto",
                "coveragePercent": 0,
                "coverageCount": "0/9",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "DocumentRefDto",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "DraftSyncRequest",
                "coveragePercent": 0,
                "coverageCount": "0/5",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "DuoDiplomaDto",
                "coveragePercent": 0,
                "coverageCount": "0/7",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "DuoLookupDto",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "HerregistratieDecisionsDto",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "HerregistratieRequest",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "IntakePolicyDto",
                "coveragePercent": 0,
                "coverageCount": "0/2",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "IntakeRequest",
                "coveragePercent": 0,
                "coverageCount": "0/2",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "LetterBlockDto",
                "coveragePercent": 0,
                "coverageCount": "0/7",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "LetterSectionDto",
                "coveragePercent": 0,
                "coverageCount": "0/6",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "LibraryPassageDto",
                "coveragePercent": 0,
                "coverageCount": "0/8",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "ManualDiplomaPolicyDto",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "ParagraphDto",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "PersonDto",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "PlaceholderDefDto",
                "coveragePercent": 0,
                "coverageCount": "0/6",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "PolicyQuestionDto",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "ProblemDetails",
                "coveragePercent": 0,
                "coverageCount": "0/6",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "ReferentieResponse",
                "coveragePercent": 0,
                "coverageCount": "0/2",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "RegistratieRequest",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "RegistrationDto",
                "coveragePercent": 0,
                "coverageCount": "0/7",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "RegistrationStatusDto",
                "coveragePercent": 0,
                "coverageCount": "0/6",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "RejectBriefRequest",
                "coveragePercent": 0,
                "coverageCount": "0/2",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "RichTextBlockDto",
                "coveragePercent": 0,
                "coverageCount": "0/2",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "RichTextNodeDto",
                "coveragePercent": 0,
                "coverageCount": "0/5",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "SaveBriefRequest",
                "coveragePercent": 0,
                "coverageCount": "0/2",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "SubmitApplicationRequest",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "SubmitApplicationResponse",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "UploadCategoriesDto",
                "coveragePercent": 0,
                "coverageCount": "0/2",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "UploadStatusDto",
                "coveragePercent": 0,
                "coverageCount": "0/2",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "UploadStatusItemDto",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-client.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "throwException",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-error.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "problemDetail",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/infrastructure/api-error.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "problemFieldErrors",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/infrastructure/role.interceptor.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "roleInterceptor",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/infrastructure/role.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "currentRole",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/infrastructure/scenario.interceptor.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "scenarioInterceptor",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/infrastructure/scenario.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "currentScenario",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/infrastructure/scenario.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "VALID",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/infrastructure/scenario.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Scenario",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/kernel/fp.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "assertNever",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/kernel/fp.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "whenTag",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/kernel/fp.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "err",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/kernel/fp.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "ok",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/kernel/fp.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Brand",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/kernel/fp.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Result",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/kernel/rich-text.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Paragraph",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/kernel/rich-text.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "RichTextBlock",
                "coveragePercent": 0,
                "coverageCount": "0/2",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/kernel/rich-text.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "deepCopyBlock",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/kernel/rich-text.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "emptyBlock",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/kernel/rich-text.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "isBlockEmpty",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/kernel/rich-text.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "placeholderKeysIn",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/kernel/rich-text.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Mark",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/kernel/rich-text.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "RichTextNode",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/layout/breadcrumb/breadcrumb-trail.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Crumb",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/layout/breadcrumb/breadcrumb-trail.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "trailFor",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/layout/breadcrumb/breadcrumb-trail.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "ROUTES",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/layout/breadcrumb/breadcrumb.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "BreadcrumbComponent",
                "coveragePercent": 50,
                "coverageCount": "1/2",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/layout/breadcrumb/breadcrumb.component.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "BreadcrumbItem",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/layout/page-shell/page-shell.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "PageShellComponent",
                "coveragePercent": 16,
                "coverageCount": "1/6",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/layout/shell/shell.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ShellComponent",
                "coveragePercent": 50,
                "coverageCount": "1/2",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/layout/site-footer/site-footer.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "SiteFooterComponent",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/layout/site-header/site-header.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "SiteHeaderComponent",
                "coveragePercent": 12,
                "coverageCount": "1/8",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/layout/site-header/site-header.component.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "HeaderNavItem",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/layout/site-header/site-header.component.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "NAV_ITEMS",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/layout/wizard-shell/wizard-shell.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "WizardShellComponent",
                "coveragePercent": 20,
                "coverageCount": "4/20",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/layout/wizard-shell/wizard-shell.component.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "WizardError",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/layout/wizard-shell/wizard-shell.component.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "naarStapLabel",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/layout/wizard-shell/wizard-shell.component.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "WizardStatus",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/alert/alert.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "AlertComponent",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/alert/alert.component.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "ICON_LABELS",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/alert/alert.component.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "AlertType",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/application-link/application-link.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ApplicationLinkComponent",
                "coveragePercent": 33,
                "coverageCount": "3/9",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/application-list/application-list.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ApplicationListComponent",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/ui/async/async.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "AsyncComponent",
                "coveragePercent": 6,
                "coverageCount": "1/15",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/async/async.component.ts",
                "type": "directive",
                "linktype": "directive",
                "name": "AsyncEmptyDirective",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/async/async.component.ts",
                "type": "directive",
                "linktype": "directive",
                "name": "AsyncErrorDirective",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/async/async.component.ts",
                "type": "directive",
                "linktype": "directive",
                "name": "AsyncLoadedDirective",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/async/async.component.ts",
                "type": "directive",
                "linktype": "directive",
                "name": "AsyncLoadingDirective",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/async/async.component.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "ASYNC",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/ui/button/button.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ButtonComponent",
                "coveragePercent": 25,
                "coverageCount": "1/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/button/button.component.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Variant",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/card/card.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "CardComponent",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/checkbox/checkbox.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "CheckboxComponent",
                "coveragePercent": 8,
                "coverageCount": "1/12",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/choice-link/choice-link.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ChoiceLinkComponent",
                "coveragePercent": 42,
                "coverageCount": "3/7",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/choice-list/choice-list.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ChoiceListComponent",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/choice-list/choice-list.component.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "nextId",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/confirmation/confirmation.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ConfirmationComponent",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/data-block/data-block.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "DataBlockComponent",
                "coveragePercent": 80,
                "coverageCount": "4/5",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/ui/data-row/data-row.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "DataRowComponent",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/debug-state/debug-state.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "DebugStateComponent",
                "coveragePercent": 12,
                "coverageCount": "1/8",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/debug-state/debug-state.component.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "maskSession",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/debug-state/mask.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "maskBsn",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/ui/debug-state/mask.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "maskTail",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/ui/debug-state/mask.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "redactProfile",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/ui/debug-state/mask.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "REDACTED",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/form-field/form-field.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "FormFieldComponent",
                "coveragePercent": 16,
                "coverageCount": "1/6",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/heading/heading.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "HeadingComponent",
                "coveragePercent": 50,
                "coverageCount": "1/2",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/link/link.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "LinkComponent",
                "coveragePercent": 50,
                "coverageCount": "1/2",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/placeholder-chip/placeholder-chip.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "PlaceholderChipComponent",
                "coveragePercent": 10,
                "coverageCount": "1/10",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/radio-group/radio-group.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "RadioGroupComponent",
                "coveragePercent": 7,
                "coverageCount": "1/13",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/radio-group/radio-group.component.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "RadioOption",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/radio-group/radio-group.component.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "JA_NEE",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/ui/review-section/review-section.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ReviewSectionComponent",
                "coveragePercent": 14,
                "coverageCount": "1/7",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "adjacentChip",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "canonical",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "collect",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "createChip",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "fillLine",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "isChip",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "markOf",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "readBlock",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "readLine",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "renderInto",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "renderNode",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "MARK_TAG",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/rich-text-editor/rich-text-dom.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "ORDER",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/ui/rich-text-editor/rich-text-editor.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "RichTextEditorComponent",
                "coveragePercent": 16,
                "coverageCount": "4/25",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/rich-text-editor/rich-text-editor.component.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "PlaceholderOption",
                "coveragePercent": 25,
                "coverageCount": "1/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/skeleton/skeleton.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "SkeletonComponent",
                "coveragePercent": 10,
                "coverageCount": "1/10",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/spinner/spinner.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "SpinnerComponent",
                "coveragePercent": 16,
                "coverageCount": "1/6",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/status-badge/status-badge.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "StatusBadgeComponent",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/stepper/stepper.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "StepperComponent",
                "coveragePercent": 41,
                "coverageCount": "5/12",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/task-list/task-list.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "TaskListComponent",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/task-list/task-list.component.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "TaskItem",
                "coveragePercent": 20,
                "coverageCount": "1/5",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/text-input/text-input.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "TextInputComponent",
                "coveragePercent": 7,
                "coverageCount": "1/14",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/upload/delivery-channel-toggle/delivery-channel-toggle.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "DeliveryChannelToggleComponent",
                "coveragePercent": 16,
                "coverageCount": "1/6",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/upload/document-category/document-category.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "DocumentCategoryComponent",
                "coveragePercent": 15,
                "coverageCount": "2/13",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/upload/document-chip/document-chip.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "DocumentChipComponent",
                "coveragePercent": 33,
                "coverageCount": "2/6",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/upload/document-upload/document-upload.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "DocumentUploadComponent",
                "coveragePercent": 18,
                "coverageCount": "2/11",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/upload/file-input/file-input.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "FileInputComponent",
                "coveragePercent": 22,
                "coverageCount": "2/9",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/upload/single-upload/single-upload.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "SingleUploadComponent",
                "coveragePercent": 42,
                "coverageCount": "3/7",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/upload/upload-progress-bar/upload-progress-bar.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "UploadProgressBarComponent",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/upload/upload-status-banner/upload-status-banner.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "UploadStatusBannerComponent",
                "coveragePercent": 25,
                "coverageCount": "1/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/upload/upload-status-banner/upload-status-banner.component.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "AlertType",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/upload/upload-status-banner/upload-status-banner.component.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "BannerType",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/ui/upload/upload-status-icon/upload-status-icon.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "UploadStatusIconComponent",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/ui/upload/upload-status-icon/upload-status-icon.component.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Glyph",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload-controller.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "UploadControllerDeps",
                "coveragePercent": 20,
                "coverageCount": "1/5",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload-controller.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "createUploadController",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/upload/upload-shell.service.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "KeepaliveTransport",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload-shell.service.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "UploadShellService",
                "coveragePercent": 62,
                "coverageCount": "5/8",
                "status": "good"
            },
            {
                "filePath": "src/app/shared/upload/upload-shell.service.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "UploadTransport",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/upload/upload-shell.service.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "Dispatch",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.adapter.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "UploadAdapter",
                "coveragePercent": 85,
                "coverageCount": "6/7",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/upload/upload.adapter.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "CategoryParams",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/upload/upload.adapter.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "StatusItem",
                "coveragePercent": 25,
                "coverageCount": "1/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.adapter.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "XhrUploadHandle",
                "coveragePercent": 33,
                "coverageCount": "1/3",
                "status": "medium"
            },
            {
                "filePath": "src/app/shared/upload/upload.adapter.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "XhrUploadRequest",
                "coveragePercent": 0,
                "coverageCount": "0/5",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "simulateUpload",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/upload/upload.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "toCategory",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/upload/upload.adapter.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "toStatusItem",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.adapter.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "genericError",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.adapter.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "parseError",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.adapter.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "UPLOAD_ABORTED",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/upload/upload.adapter.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "UPLOAD_FAILED",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "DocumentCategory",
                "coveragePercent": 0,
                "coverageCount": "0/9",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Upload",
                "coveragePercent": 0,
                "coverageCount": "0/7",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "UploadState",
                "coveragePercent": 0,
                "coverageCount": "0/7",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "categorySatisfied",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "deliveryRefs",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "mapUpload",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "reduceUpload",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "rejectReason",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "requiredCategoriesSatisfied",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "ACTIVE",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "categoryOf",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "find",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "inFlight",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "initialUpload",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "REJECTION_MESSAGES",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "DeliveryChannel",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "UploadMsg",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/upload/upload.machine.ts",
                "type": "type alias",
                "linktype": "miscellaneous",
                "linksubtype": "typealias",
                "name": "UploadStatus",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/app/showcase/concepts.page.ts",
                "type": "component",
                "linktype": "component",
                "name": "ConceptsPage",
                "coveragePercent": 8,
                "coverageCount": "1/12",
                "status": "low"
            },
            {
                "filePath": "src/app/showcase/concepts.page.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "fakeResource",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/environments/environment.prod.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "environment",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "src/environments/environment.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "environment",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            }
        ]
    }
}