import type { BaseRevId } from './common.js' import type { EditableSnakValue } from './snaks.js' import type { Reconciliation } from '../entity/validate_reconciliation_object.js' import type { OverrideProperties } from 'type-fest' import type { Claim, Guid, Hash, Item, LanguageRecord, Lexeme, MediaInfo, Property, PropertyId, Rank, SimplifiedItem, SimplifiedLexeme, SimplifiedMediaInfo, SimplifiedProperty, SimplifiedReference, SimplifiedTerm, Site, SitelinkBadges, SitelinkTitle, SnakType } from 'wikibase-sdk' export interface EditableClaimExtras { remove?: boolean reconciliation?: Reconciliation } export interface CustomSimplifiedEditableSnak { value: EditableSnakValue snaktype?: SnakType hash?: Hash } export type SimplifiedEditableSnak = string | number | CustomSimplifiedEditableSnak | EditableSnakValue export type SimpifiedEditableQualifier = SimplifiedEditableSnak export type SimplifiedEditablePropertySnaks = SimplifiedEditableSnak[] export interface CustomSimplifiedEditableClaim extends EditableClaimExtras { id?: Guid value?: EditableSnakValue rank?: Rank qualifiers?: SimplifiedEditableQualifiers references?: SimplifiedEditableReferences snaktype?: SnakType } export type EditableClaim = Partial & EditableClaimExtras & { id: Claim['id'] } export type SimplifiedEditableClaim = string | number | (EditableSnakValue & EditableClaimExtras) | CustomSimplifiedEditableClaim export type SimplifiedEditablePropertyClaims = SimplifiedEditableClaim[] export type SimplifiedEditableClaims = Record export type SimplifiedEditableSnaks = Record export type SimplifiedEditableQualifiers = Record export type SimplifiedEditableReferenceSnaks = Record export interface SimplifiedEditableRichReferenceSnaks { snaks: SimplifiedEditableReferenceSnaks hash: Hash } export type SimplifiedEditableReference = EditableSnakValue | SimplifiedReference | SimplifiedEditableReferenceSnaks | SimplifiedEditableRichReferenceSnaks export type SimplifiedEditableReferences = SimplifiedReference[] | SimplifiedEditableReference[] | SimplifiedEditableReference export interface CustomSimplifiedEditableSitelink { title?: SitelinkTitle remove?: boolean badges?: SitelinkBadges url?: string } export type SimplifiedEditableSitelinks = Partial> export type CustomSimplifiedEditableSitelinks = Partial> export type SimplifiedEditableItem = Partial> export type SimplifiedEditableProperty = Partial> export type SimplifiedEditableLexeme = Partial> export type SimplifiedEditableMediaInfo = Partial> export type SimplifiedEditableAliases = LanguageRecord interface EditableEntityExtras { baserevid?: BaseRevId } /** See https://www.wikidata.org/w/api.php?action=help&modules=wbeditentity */ export type RawEditableItem = OverrideProperties & EditableEntityExtras export type RawEditableProperty = OverrideProperties & EditableEntityExtras export type RawEditableLexeme = OverrideProperties & EditableEntityExtras /** See https://commons.wikimedia.org/w/api.php?action=help&modules=wbeditentity */ export type RawEditableMediaInfo = Omit & { claims?: EditableClaim[] } & EditableEntityExtras /** An entity where claim.remove can be set */ export type RawEditableEntity = (RawEditableItem | RawEditableProperty | RawEditableLexeme | RawEditableMediaInfo) & EditableEntityExtras export type SimplifiedEditableEntity = (SimplifiedEditableItem | SimplifiedEditableProperty | SimplifiedEditableLexeme | SimplifiedEditableMediaInfo) & EditableEntityExtras