///
import { implFetchUser, type User } from '../../implementation/index.js';
import type Client from '../../index.js';
import { V2vAudioFile } from './v2vAudioFile/V2vAudioFile.js';
import { type V2vModelSchema } from './v2vModel.schema.js';
/**
* A voice conversion model.
* This is a model that can be used to convert audio from one voice to another.
*/
export declare class V2vModel implements User {
#private;
/**
* @param client The main client.
* @param data The raw model data from the FakeYou API.
*/
constructor(client: Client, data: V2vModelSchema);
readonly client: Client;
readonly token: string;
readonly modelType: string;
readonly title: string;
readonly creatorUserToken: string;
/**
* @alias creatorUsername
*/
readonly username: string;
readonly creatorUsername: string;
readonly creatorDisplayName: string;
readonly creatorGravatarHash: string;
readonly creatorSetVisibility: 'public' | 'hidden';
readonly ietfLanguageTag: string;
readonly ietfPrimaryLanguageSubtag: string;
readonly isFrontPageFeatured: boolean;
readonly createdAt: Date;
readonly updatedAt: Date;
/**
* Infer uploaded audio to a new voice represented by this model.
*
* NOTE: Voice conversion models are very slow to infer. It may take multiple minutes for the inference to complete.
*
* @param audio The audio to infer as a wav file.
* @returns The inferred audio file. Undefined if the audio could not be inferred.
*/
infer(audio: Buffer): Promise;
/**
* Fetch the profile of the user who created this model.
*/
fetchProfile: typeof implFetchUser;
}