import { Asset } from "./Asset";
import { Options, AssetsRequestConfig } from "./types";
type DandisetVersionInfo = {
    asset_count: number;
    created: string;
    modified: string;
    name: string;
    size: number;
    status: string;
    version: string | 'draft';
};
type DandisetBase = {
    identifier: string;
    contact_person: string;
    created: string;
    embargo_status: string;
    modified: string;
    draft_version: DandisetVersionInfo;
    most_recent_published_version: DandisetVersionInfo;
};
export declare class Dandiset {
    #private;
    identifier: DandisetBase['identifier'];
    contact_person?: DandisetBase['contact_person'];
    created?: DandisetBase['created'];
    embargo_status?: DandisetBase['embargo_status'];
    modified?: DandisetBase['modified'];
    draft_version?: DandisetBase['draft_version'];
    most_recent_published_version?: DandisetBase['most_recent_published_version'];
    constructor(info: DandisetBase | DandisetBase['identifier'] | undefined, options: Options);
    get(id?: string): Promise<any>;
    getInfo(options?: Options): Promise<any>;
    getAsset(id: string, options?: Options): Promise<Asset>;
    getAssets(options?: Options): Promise<{
        [x: string]: Asset;
    }>;
}
export declare const getAssetsUrl: (dandiset: string, options?: Options) => string;
export declare const getAssets: (config: AssetsRequestConfig | string) => Promise<Asset[]>;
export declare const getAll: (options?: Options) => Promise<Dandiset[]>;
export declare const get: (id: string, options?: Options) => Promise<Dandiset>;
export declare const getMine: (options?: Options, include?: Record<string, any>) => Promise<Dandiset[]>;
export {};
