export type TVkPeerId = string | number;
export type TVkDocType = 'doc' | 'audio_message' | 'graffiti';
export interface IVkApi<T = {}> {
    error?: string;
    response?: T;
}
export interface IVkUploadFile extends IVkApi {
    file: string;
    photo: string;
    server: string;
    hash: string;
}
export interface IVkParamsUsersGet {
    user_ids: string[];
    fields: string[];
    name_case: string;
}
export interface IVkParams {
    user_id?: number;
    random_id?: number;
    peer_id?: number;
    domain?: string;
    chat_id?: number;
    user_ids?: number[];
    message?: string;
    lat?: number;
    long?: number;
    attachments?: string[];
    reply_to?: number;
    forward_messages?: number[];
    forward?: string;
    sticker_id?: number;
    group_id?: number;
    keyboard?: string | object;
    payload?: string;
    dont_parse_links?: boolean;
    disable_mentions?: boolean;
    template?: any;
}
export interface IVkUsersIds {
    peer_id?: number;
    message_id?: number;
    error?: any;
}
export interface IVKSendMessage extends IVkApi<number> {
    user_ids?: IVkUsersIds[];
}
export interface IVkUsersGet extends IVkApi {
    id: number;
    first_name: string;
    last_name: string;
    deactivated?: string;
    is_closed: boolean;
    can_access_closed: boolean;
}
export interface IVkUploadServer extends IVkApi {
    upload_url: string;
    album_id?: string;
    group_id?: string;
}
export interface IVkPhotosSave extends IVkApi {
    id: number;
    pid: number;
    aid: number;
    owner_id: number;
    src: string;
    src_big: string;
    src_small: string;
    created: number;
    src_xbig: string;
    src_xxbig: string;
}
interface IVkDocInfo {
    id: number;
    owner_id: number;
}
export interface IVkGraffiti extends IVkDocInfo {
    url: string;
    width: number;
    height: number;
}
export interface IVkAudioMessageInfo {
    duration: number;
    waleform: number[];
    link_ogg?: string;
    link_mp3?: string;
}
export interface IVkAudioMessage extends IVkDocInfo, IVkAudioMessageInfo {
}
export interface IVkPreview {
    photo?: string[];
    graffiti?: {
        src: string;
        width: number;
        height: number;
    };
    audio_message?: IVkAudioMessageInfo;
}
export interface IVKDoc extends IVkDocInfo {
    url: string;
    title: string;
    size: number;
    ext: string;
    date: number;
    type: number;
    preview: IVkPreview;
}
export interface IVkDocSave extends IVkDocInfo, IVkApi {
    type: TVkDocType;
    graffiti?: IVkGraffiti;
    audio_message?: IVkAudioMessage;
    doc?: IVKDoc;
    id: number;
    url: string;
    width?: number;
    height?: number;
    duration?: number;
    waleform?: number[];
    link_ogg?: string;
    link_mp3?: string;
}
export {};
