import * as _sinclair_typebox from '@sinclair/typebox'; /** * CMS Labels Contracts * * 라벨 메타데이터 관리 API */ /** * GET /_cms/labels - 라벨 목록 조회 */ declare const getLabelsContract: { readonly method: "GET"; readonly path: "/_cms/labels"; readonly query: _sinclair_typebox.TObject<{ section: _sinclair_typebox.TOptional<_sinclair_typebox.TString>; includeDefaultValues: _sinclair_typebox.TOptional<_sinclair_typebox.TBoolean>; }>; readonly response: _sinclair_typebox.TObject<{ labels: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{ id: _sinclair_typebox.TNumber; key: _sinclair_typebox.TString; section: _sinclair_typebox.TString; type: _sinclair_typebox.TString; description: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; publishedVersion: _sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TNull]>; createdBy: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; createdAt: _sinclair_typebox.TString; updatedAt: _sinclair_typebox.TString; defaultValue: _sinclair_typebox.TOptional<_sinclair_typebox.TAny>; }>>; total: _sinclair_typebox.TNumber; }>; }; /** * POST /_cms/labels - 새 라벨 생성 */ declare const createLabelContract: { readonly method: "POST"; readonly path: "/_cms/labels"; readonly body: _sinclair_typebox.TObject<{ key: _sinclair_typebox.TString; section: _sinclair_typebox.TString; type: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"text">, _sinclair_typebox.TLiteral<"image">, _sinclair_typebox.TLiteral<"video">, _sinclair_typebox.TLiteral<"file">, _sinclair_typebox.TLiteral<"object">]>; createdBy: _sinclair_typebox.TOptional<_sinclair_typebox.TString>; }>; readonly response: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{ id: _sinclair_typebox.TNumber; key: _sinclair_typebox.TString; section: _sinclair_typebox.TString; type: _sinclair_typebox.TString; publishedVersion: _sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TNull]>; createdBy: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; createdAt: _sinclair_typebox.TString; updatedAt: _sinclair_typebox.TString; }>, _sinclair_typebox.TObject<{ error: _sinclair_typebox.TString; key: _sinclair_typebox.TOptional<_sinclair_typebox.TString>; }>]>; }; /** * GET /_cms/labels/:id - 라벨 단건 조회 */ declare const getLabelContract: { readonly method: "GET"; readonly path: "/_cms/labels/:id"; readonly params: _sinclair_typebox.TObject<{ id: _sinclair_typebox.TString; }>; readonly response: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{ id: _sinclair_typebox.TNumber; key: _sinclair_typebox.TString; section: _sinclair_typebox.TString; type: _sinclair_typebox.TString; description: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; publishedVersion: _sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TNull]>; createdBy: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; createdAt: _sinclair_typebox.TString; updatedAt: _sinclair_typebox.TString; }>, _sinclair_typebox.TObject<{ error: _sinclair_typebox.TString; }>]>; }; /** * PATCH /_cms/labels/:id - 라벨 메타데이터 수정 */ declare const updateLabelContract: { readonly method: "PATCH"; readonly path: "/_cms/labels/:id"; readonly params: _sinclair_typebox.TObject<{ id: _sinclair_typebox.TString; }>; readonly body: _sinclair_typebox.TObject<{ section: _sinclair_typebox.TOptional<_sinclair_typebox.TString>; type: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"text">, _sinclair_typebox.TLiteral<"image">, _sinclair_typebox.TLiteral<"video">, _sinclair_typebox.TLiteral<"file">, _sinclair_typebox.TLiteral<"object">]>>; }>; readonly response: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{ id: _sinclair_typebox.TNumber; key: _sinclair_typebox.TString; section: _sinclair_typebox.TString; type: _sinclair_typebox.TString; description: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; publishedVersion: _sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TNull]>; createdBy: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; createdAt: _sinclair_typebox.TString; updatedAt: _sinclair_typebox.TString; }>, _sinclair_typebox.TObject<{ error: _sinclair_typebox.TString; }>]>; }; /** * DELETE /_cms/labels/:id - 라벨 삭제 */ declare const deleteLabelContract: { readonly method: "DELETE"; readonly path: "/_cms/labels/:id"; readonly params: _sinclair_typebox.TObject<{ id: _sinclair_typebox.TString; }>; readonly response: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{ success: _sinclair_typebox.TBoolean; id: _sinclair_typebox.TNumber; }>, _sinclair_typebox.TObject<{ error: _sinclair_typebox.TString; }>]>; }; /** * GET /_cms/labels/by-key/:key - Key로 라벨 조회 */ declare const getLabelByKeyContract: { readonly method: "GET"; readonly path: "/_cms/labels/by-key/:key"; readonly params: _sinclair_typebox.TObject<{ key: _sinclair_typebox.TString; }>; readonly response: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{ id: _sinclair_typebox.TNumber; key: _sinclair_typebox.TString; section: _sinclair_typebox.TString; type: _sinclair_typebox.TString; description: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; publishedVersion: _sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TNull]>; createdBy: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; createdAt: _sinclair_typebox.TString; updatedAt: _sinclair_typebox.TString; }>, _sinclair_typebox.TObject<{ error: _sinclair_typebox.TString; key: _sinclair_typebox.TOptional<_sinclair_typebox.TString>; }>]>; }; /** * POST /_cms/labels/:id/publish - 라벨 발행 (Draft → Published) */ declare const publishLabelContract: { readonly method: "POST"; readonly path: "/_cms/labels/:id/publish"; readonly params: _sinclair_typebox.TObject<{ id: _sinclair_typebox.TString; }>; readonly body: _sinclair_typebox.TObject<{ notes: _sinclair_typebox.TOptional<_sinclair_typebox.TString>; publishedBy: _sinclair_typebox.TOptional<_sinclair_typebox.TString>; }>; readonly response: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{ success: _sinclair_typebox.TBoolean; id: _sinclair_typebox.TNumber; version: _sinclair_typebox.TNumber; message: _sinclair_typebox.TString; }>, _sinclair_typebox.TObject<{ error: _sinclair_typebox.TString; }>]>; }; /** * GET /_cms/labels/:id/admin - 관리자용 라벨 조회 (Draft + Published + Status) */ declare const getAdminLabelContract: { readonly method: "GET"; readonly path: "/_cms/labels/:id/admin"; readonly params: _sinclair_typebox.TObject<{ id: _sinclair_typebox.TString; }>; readonly response: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{ label: _sinclair_typebox.TObject<{ id: _sinclair_typebox.TNumber; key: _sinclair_typebox.TString; section: _sinclair_typebox.TString; type: _sinclair_typebox.TString; description: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; publishedVersion: _sinclair_typebox.TUnion<[_sinclair_typebox.TNumber, _sinclair_typebox.TNull]>; createdBy: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; createdAt: _sinclair_typebox.TString; updatedAt: _sinclair_typebox.TString; }>; draft: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{ id: _sinclair_typebox.TNumber; labelId: _sinclair_typebox.TNumber; version: _sinclair_typebox.TNull; locale: _sinclair_typebox.TString; breakpoint: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; value: _sinclair_typebox.TAny; createdAt: _sinclair_typebox.TString; }>>; published: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{ id: _sinclair_typebox.TNumber; labelId: _sinclair_typebox.TNumber; version: _sinclair_typebox.TNumber; locale: _sinclair_typebox.TString; breakpoint: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; value: _sinclair_typebox.TAny; createdAt: _sinclair_typebox.TString; }>>; status: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"default-only">, _sinclair_typebox.TLiteral<"unpublished">, _sinclair_typebox.TLiteral<"published">, _sinclair_typebox.TLiteral<"modified">]>; }>, _sinclair_typebox.TObject<{ error: _sinclair_typebox.TString; }>]>; }; /** * GET /_cms/labels/:id/versions - 라벨 버전 히스토리 조회 */ declare const getLabelVersionsContract: { readonly method: "GET"; readonly path: "/_cms/labels/:id/versions"; readonly params: _sinclair_typebox.TObject<{ id: _sinclair_typebox.TString; }>; readonly response: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{ versions: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{ version: _sinclair_typebox.TNumber; publishedAt: _sinclair_typebox.TString; publishedBy: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; notes: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; values: _sinclair_typebox.TArray<_sinclair_typebox.TObject<{ id: _sinclair_typebox.TNumber; locale: _sinclair_typebox.TString; breakpoint: _sinclair_typebox.TUnion<[_sinclair_typebox.TString, _sinclair_typebox.TNull]>; value: _sinclair_typebox.TAny; createdAt: _sinclair_typebox.TString; }>>; }>>; }>, _sinclair_typebox.TObject<{ error: _sinclair_typebox.TString; }>]>; }; export { createLabelContract, deleteLabelContract, getAdminLabelContract, getLabelByKeyContract, getLabelContract, getLabelVersionsContract, getLabelsContract, publishLabelContract, updateLabelContract };