/// <reference types="bluebird" />
import * as Promise from 'bluebird';
import { HudAiCreateAttributes, HudAiListAttributes, HudAiUpdateAttributes, Resource } from '../utils/Resource';
import { RequestManager } from '../RequestManager';
import { Collateral } from '../entities';
export interface CollateralListAttributes extends HudAiListAttributes {
    id?: string;
    organizationId: string;
    name?: string;
}
export interface CollateralSearchAttributes extends HudAiListAttributes {
    id?: string;
    organizationId?: string;
    text?: string;
    filetype?: string;
    createdBefore?: Date;
    createdAfter?: Date;
}
export interface CollateralCreateAttributes extends HudAiCreateAttributes {
    name: string;
    description?: string;
    contentUrl: string;
    plaintextUrl?: string;
    filetype?: string;
    size?: number;
    dataScienceMetadata?: Object;
}
export interface CollateralGetAttributes {
    id: string;
    organizationId: string;
}
export interface CollateralUpdateAttributes extends HudAiUpdateAttributes {
    id: string;
    organizationId: string;
    name?: string;
    description?: string;
    contentUrl?: string;
    plaintextUrl?: string;
    filetype?: string;
    size?: number;
    dataScienceMetadata?: Object;
}
export interface CollateralDestroyAttributes {
    id: string;
    organizationId: string;
}
export declare class CollateralResource extends Resource<Collateral, CollateralListAttributes, CollateralCreateAttributes, CollateralUpdateAttributes> {
    constructor(requestManager: RequestManager);
    list(listArgs: CollateralListAttributes): Promise<{
        count: number;
        rows: Collateral[];
    }>;
    search(searchArgs: CollateralSearchAttributes): Promise<{
        count: number;
        rows: Collateral[];
    }>;
    create(createArgs: CollateralCreateAttributes): Promise<Collateral>;
    downloadUri(getArgs: CollateralGetAttributes): Promise<Collateral>;
    get(getArgs: CollateralGetAttributes): Promise<Collateral>;
    update(updateArgs: CollateralUpdateAttributes): Promise<Collateral>;
    del(destroyArgs: CollateralDestroyAttributes): Promise<void>;
    destroy(destroyArgs: CollateralDestroyAttributes): Promise<void>;
}
