import type Model from '../../balena-model.js'; type ValidContractResources = 'device_type' | 'cpu_architecture' | 'device_family' | 'device_manufacturer'; export interface RepositoryInfo { owner: string; name: string; branch?: string; token?: string; } export interface ContractAsset { url: string; name?: string; } export interface Contract { slug: string; version: number; type: string; aliases?: string[]; name: string; assets?: Dictionary; data: any; } export declare const getContractRepos: () => RepositoryInfo[]; type FieldsMap = { [dbField: string]: { contractField: string; default?: any; refersTo?: { resource: ValidContractResources; uniqueKey: keyof Model[ValidContractResources]['Read']; }; isReferencedBy?: { resource: 'device_type_alias'; naturalKeyPart: keyof Model['device_type_alias']['Write']; }; }; }; export type SyncSetting = { resource: ValidContractResources; uniqueKey: keyof Model[ValidContractResources]['Read']; includeRawContract?: boolean; map: FieldsMap; }; type SyncSettings = { [contractType: string]: SyncSetting; }; export declare function setSyncSettings(syncSettings: SyncSettings): void; export declare const synchronizeContracts: (contractRepos: RepositoryInfo[]) => Promise; export declare const startContractSynchronization: () => void; export {};