import Knex from 'knex'; import { MapDataType } from './data_types'; import { AbstractCrudModel, Data, RequiredId } from './abstract_crud'; import { GeneralMaterialDesignation, GmdData } from './gmd'; import { Frequency, FrequencyData } from './frequency'; import { Publisher, PublisherData } from './publisher'; import { Place, PlaceData } from './place'; import { CarrierType, CarrierTypeData } from './carrier_type'; import { ContentType, ContentTypeData } from './content_type'; import { MediaType, MediaTypeData } from './media_type'; import { Language, LanguageData } from './language'; import { Author, AuthorData } from './author'; import { Topic, TopicData } from './topic'; export declare type BiblioData = Data & { gmd?: GmdData; language?: LanguageData; publisher?: PublisherData; publishPlace?: PlaceData; frequency?: FrequencyData; contentType?: ContentTypeData; mediaType?: MediaTypeData; carrierType?: CarrierTypeData; title: string; isbnIssn?: string; statementOfResponsibility?: string; edition?: string; collation?: string; seriesTitle?: string; callNumber?: string; classification?: string; publishYear?: string; notes?: string; image?: string; labels?: string; specDetailInfo?: string; hide?: boolean; promoted?: boolean; }; declare const biblioColumns: { readonly id: "biblio_id"; readonly gmd: "gmd_id"; readonly title: "title"; readonly statementOfResponsibility: "sor"; readonly edition: "edition"; readonly isbnIssn: "isbn_issn"; readonly publisher: "publisher_id"; readonly publishYear: "publish_year"; readonly collation: "collation"; readonly seriesTitle: "series_title"; readonly callNumber: "call_number"; readonly language: "language_id"; readonly source: "source"; readonly publishPlace: "publish_place_id"; readonly classification: "classification"; readonly notes: "notes"; readonly image: "image"; readonly hide: "opac_hide"; readonly promoted: "promoted"; readonly labels: "labels"; readonly frequency: "frequency_id"; readonly specDetailInfo: "spec_detail_info"; readonly contentType: "content_type_id"; readonly mediaType: "media_type_id"; readonly carrierType: "carrier_type_id"; readonly created: "input_date"; readonly updated: "last_update"; }; declare type RawBiblioDataOverrides = { biblio_id: number; gmd_id?: number; language_id?: string; publisher_id?: number; publish_place_id?: number; frequency_id?: number; content_type_id?: number; media_type_id?: number; carrier_type_id?: number; opac_hide: number; promoted: number; notes: string; }; declare type RawBiblioData = MapDataType; declare type Models = { publisher: Publisher; gmd: GeneralMaterialDesignation; place: Place; mediaType: MediaType; contentType: ContentType; carrierType: CarrierType; frequency: Frequency; language: Language; topic: Topic; author: Author; }; export declare class Biblio extends AbstractCrudModel { private readonly models; private readonly authorRelationTable; private readonly topicRelationTable; constructor(db: Knex, models: Models); addAuthor(biblioId: number, author: AuthorData | number, level: number): Promise; getAuthors(biblioId: number): Promise<(RequiredId | undefined)[]>; removeAuthor(biblioId: number, author: AuthorData | number): Promise; addTopic(biblioId: number, topic: TopicData | number, level: number): Promise; getTopics(biblioId: number): Promise<(RequiredId | undefined)[]>; removeTopic(biblioId: number, topic: TopicData | number): Promise; protected toPartialRaw(data: Partial): { biblio_id: number | undefined; language_id: string | undefined; gmd_id: number | undefined; publisher_id: number | undefined; publish_place_id: number | undefined; frequency_id: number | undefined; content_type_id: number | undefined; media_type_id: number | undefined; carrier_type_id: number | undefined; title: string | undefined; sor: string | undefined; edition: string | undefined; isbn_issn: string | undefined; publish_year: string | undefined; collation: string | undefined; series_title: string | undefined; call_number: string | undefined; classification: string | undefined; notes: string | undefined; image: string | undefined; opac_hide: number | undefined; promoted: number | undefined; labels: string | undefined; spec_detail_info: string | undefined; }; protected toRaw(data: BiblioData): Promise<{ biblio_id: number | undefined; language_id: string | undefined; gmd_id: number | undefined; publisher_id: number | undefined; publish_place_id: number | undefined; frequency_id: number; content_type_id: number | undefined; media_type_id: number | undefined; carrier_type_id: number | undefined; title: string; sor: string | undefined; edition: string | undefined; isbn_issn: string | undefined; publish_year: string | undefined; collation: string | undefined; series_title: string | undefined; call_number: string | undefined; source: null; classification: string | undefined; notes: string; image: string | undefined; opac_hide: number; promoted: number; labels: string | undefined; spec_detail_info: string | undefined; input_date: Date; last_update: Date; }>; protected toData(data: RawBiblioData): Promise>; } export {};