import * as React from 'react';
import type { AssetWithPopulatedCreatedBy } from '../../../../../../../shared/contracts/files';
interface DrawerToast {
    type: 'success' | 'danger';
    message: string;
}
type DrawerNotify = (toast: DrawerToast) => void;
export declare const DrawerNotifyContext: React.Context<DrawerNotify | null>;
interface AssetOperations {
    replaceAsset: (file: globalThis.File) => Promise<void>;
    deleteAsset: () => Promise<void>;
    isReplacing: boolean;
    isDeleting: boolean;
}
export declare const AssetOperationsContext: React.Context<AssetOperations | null>;
export declare const useAssetDetailsParam: () => {
    assetId: number | null;
    isVisible: boolean;
    shouldRenderDrawer: boolean;
    onCloseAnimationEnd: (event: React.AnimationEvent) => void;
    openDetails: (id: number) => void;
    closeDetails: () => void;
};
interface AssetDetailsProps {
    asset: AssetWithPopulatedCreatedBy;
    closeDetails: () => void;
}
export declare const AssetDetails: ({ asset, closeDetails }: AssetDetailsProps) => import("react/jsx-runtime").JSX.Element;
export declare const AssetDetailsDrawer: () => import("react/jsx-runtime").JSX.Element | null;
export {};
