import { SharedContracts } from './shared-contracts';
export declare namespace AssetContracts {
    interface IAssetModelContract {
        id: string;
        file_name: string;
        title: string;
        image_width: number | null;
        image_height: number | null;
        size: number;
        type: string;
        file_reference: IAssetFileReferenceContract;
        descriptions: IAssetFileDescriptionContract[];
        external_id: string;
        last_modified: string;
        url: string;
        codename: string;
        collection?: IAssetCollectionReferenceContract;
        folder?: IAssetFolderReferenceContract;
        elements?: IAssetElement[];
    }
    interface IAssetElement {
        element: SharedContracts.IIdReferenceContract;
        value: SharedContracts.IIdReferenceContract[];
    }
    interface IAssetFileReferenceContract {
        id: string;
        type: 'internal';
    }
    interface IAssetFolderReferenceContract {
        id?: string;
        external_id?: string;
    }
    interface IAssetFileDescriptionContract {
        language: SharedContracts.IReferenceObjectContract;
        description: string;
    }
    interface IAssetCollectionReferenceContract {
        reference: SharedContracts.IReferenceObjectContract | null;
    }
    interface IAssetsListingResponseContract {
        assets: IAssetModelContract[];
        pagination: SharedContracts.IPaginationModelContract;
    }
    interface IUploadBinaryFileResponseContract extends IAssetFileReferenceContract {
    }
    interface IAddAssetResponseContract extends IAssetModelContract {
    }
    interface IUpdateAssetResponseContract extends IAssetModelContract {
    }
    interface IUpsertAssetResponseContract extends IAssetModelContract {
    }
    interface IDeleteAssetResponseContract {
    }
}
