export declare type CubicPlayerActions = {
    setParentWindow: {
        payload: string;
        result: boolean;
    };
    getDownloadFolderPath: {
        payload: null;
        result: string;
    };
    getDownloadedFileNames: {
        payload: null;
        result: string[];
    };
    downloadUrls: {
        payload: string[];
        result: {
            notDownloadedUrls: string[];
        };
    };
};
export declare type CubicPlayerActionType = keyof CubicPlayerActions;
export declare type CubicPlayerActionPayload<TypeT extends CubicPlayerActionType> = CubicPlayerActions[TypeT]['payload'];
export declare type CubicPlayerActionResult<TypeT extends CubicPlayerActionType> = CubicPlayerActions[TypeT]['result'];
export declare type CubicPlayerActionData<TypeT extends CubicPlayerActionType> = {
    type: TypeT;
    payload: CubicPlayerActionPayload<TypeT>;
};
declare type ValueOf<T> = T[keyof T];
export declare type CubicPlayerAction = ValueOf<{
    [TypeT in CubicPlayerActionType]: CubicPlayerActionData<TypeT>;
}>;
export declare type CubicPlayerActionHandler<TypeT extends CubicPlayerActionType> = (payload: CubicPlayerActionPayload<TypeT>) => Promise<CubicPlayerActionResult<TypeT>>;
export {};
