export interface PixivClient {
    accessToken: string;
    expiresIn: number;
    tokenType: string;
    scope: string;
    refreshToken: string;
    user: PixivClientUser;
    deviceToken: string;
}
export interface PixivClientUser {
    profileImageUrls: {
        px16X16: string;
        px50X50: string;
        px170X170: string;
    };
    id: string;
    name: string;
    account: string;
    mailAddress: string;
    isPremium: boolean;
    xRestrict: number;
    isMailAuthorized: boolean;
}
export interface PixivRequestData {
    clientId: string;
    clientSecret: string;
    getSecureUrl: string;
    grantType: string;
    refreshToken: string;
    username: string;
    password: string;
}
export interface PixivParams {
    userId?: number;
    type?: string;
    filter?: string;
    restrict?: 'public' | 'private';
    illustId?: number;
    contentType?: string;
    includeTotalComments?: boolean;
    includeRankingLabel?: boolean;
    includeRankingIllusts?: boolean;
    includeRankingNovels?: boolean;
    mode?: 'day' | 'week' | 'month' | 'day_male' | 'day_female' | 'week_original' | 'week_rookie' | 'day_r18' | 'day_male_r18' | 'day_female_r18' | 'week_r18' | 'week_r18g' | 'day_manga' | 'week_manga' | 'month_manga' | 'week_rookie_manga' | 'day_r18_manga' | 'week_r18_manga' | 'week_r18g_manga';
    word?: string;
    searchTarget?: 'partial_match_for_tags' | 'exact_match_for_tags' | 'title_and_caption';
    sort?: 'date_desc' | 'date_asc' | 'popular_desc';
    startDate?: string;
    endDate?: string;
    offset?: number;
}
export interface PixivFetchOptions {
    data?: PixivParams;
    method?: string;
    headers?: {
        [header: string]: string;
    };
    params?: PixivParams;
}
export interface PixivUser {
    id: number;
    name: string;
    account: string;
    profileImageUrls: {
        medium: string;
    };
    comment: string;
    isFollowed: boolean;
}
export interface PixivUserDetail {
    user: PixivUser;
    profile: {
        webpage: string;
        gender: string;
        birth: string;
        birthDay: string;
        birthYear: number;
        region: string;
        addressId: number;
        countryCode: string;
        job: string;
        jobId: number;
        totalFollowUsers: number;
        totalMypixivUsers: number;
        totalIllusts: number;
        totalManga: number;
        totalNovels: number;
        totalIllustBookmarksPublic: number;
        totalIllustSeries: number;
        backgroundImageUrl: string;
        twitterAccount: string;
        twitterUrl: string;
        pawooUrl: string;
        isPremium: boolean;
        isUsingCustomProfileImage: boolean;
    };
    profilePublicity: {
        gender: string;
        region: string;
        birthDay: string;
        birthYear: string;
        job: string;
        pawoo: boolean;
    };
    workspace: {
        pc: string;
        monitor: string;
        tool: string;
        scanner: string;
        tablet: string;
        mouse: string;
        printer: string;
        desktop: string;
        music: string;
        desk: string;
        chair: string;
        comment: string;
        workspaceImageUrl: string | null;
    };
}
export interface PixivIllustDetail {
    illust: PixivIllust;
}
export interface PixivIllustSearch {
    illusts: PixivIllust[];
    nextUrl: string | null;
    searchSpanLimit?: number;
}
export interface PixivUserSearch {
    userPreviews: {
        user: PixivUser;
        illusts: PixivIllust[];
        novels: PixivNovel[];
        isMuted: boolean;
    }[];
    nextUrl: string | null;
}
export interface PixivCommentSearch {
    totalComments: number;
    comments: PixivComment[];
    nextUrl: string | null;
}
export interface PixivNovelSearch {
    novels: PixivNovel[];
    nextUrl: string | null;
    privacyPolicy?: {};
    searchSpanLimit?: number;
}
export interface PixivBookmarkSearch {
    bookmarkTags: PixivTag[];
    nextUrl: string | null;
}
export interface PixivMangaSearch {
    illusts: PixivManga[];
    rankingIllusts: PixivManga[] | [];
    privacyPolicy: {};
    nextUrl: string | null;
}
export interface PixivIllust {
    id: number;
    title: string;
    type: string;
    imageUrls: {
        squareMedium: string;
        medium: string;
        large?: string;
    };
    caption: string;
    restrict: number;
    user: PixivUser;
    tags: PixivTag[];
    tools: string[];
    createDate: string;
    pageCount: number;
    width: number;
    height: number;
    sanityLevel: number;
    metaSinglePage: {
        originalImageUrl?: string;
    };
    metaPages: PixivMetaPage[];
    totalView: number;
    totalBookmarks: number;
    isBookmarked: boolean;
    visible: boolean;
    isMuted: boolean;
    totalComments: number;
}
export interface PixivTag {
    name: string;
    translatedName: string | null;
    addedByUploadedUser?: boolean;
    illust?: PixivIllust;
    isRegistered?: boolean;
}
export interface PixivMetaPage {
    imageUrls: {
        squareMedium: string;
        medium: string;
        large: string;
        original: string;
    };
}
export interface PixivComment {
    id: number;
    comment: string;
    date: string;
    user: PixivUser;
    parentComment: PixivComment | {};
}
export interface PixivNovel {
    id: number;
    title: string;
    caption: string;
    restrict: number;
    xRestrict: number;
    imageUrls: {
        squareMedium: string;
        medium: string;
        large?: string;
    };
    createDate: string;
    tags: PixivTag[];
    pageCount: number;
    textLength: number;
    user: PixivUser;
    series: {
        id: number;
        title: string;
    } | {};
    isBookmarked: boolean;
    totalBookmarks: number;
    totalView: number;
    visible: boolean;
    totalComments: number;
    isMuted: boolean;
    isMypixivOnly: boolean;
    isXRestricted: boolean;
}
export interface PixivManga {
    id: number;
    title: string;
    type: string;
    imageUrls: {
        squareMedium: string;
        medium: string;
        large?: string;
    };
    caption: string;
    restrict: number;
    user: PixivUser;
    tags: PixivTag[];
    tools: string[];
    createDate: string;
    pageCount: string;
    width: number;
    height: number;
    sanityLevel: number;
    xRestrict: number;
    series: {
        id: number;
        title: string;
    } | null;
    metaSinglePage: {};
    metaPages: PixivMetaPage[];
    totalView: number;
    totalBookmarks: number;
    isBookmarked: boolean;
    visible: boolean;
    isMuted: boolean;
}
export interface PixivTrendTags {
    trend_tags: PixivTag[];
}
export interface PixivAutoComplete {
    searchAutoCompleteKeywords: string[];
}
export interface PixivBookmarkDetail {
    isBookmarked: boolean;
    tags: PixivTag[];
    restrict: string;
}
export interface UgoiraMetaData {
    ugoiraMetadata: {
        zipUrls: {
            medium: string;
        };
        frames: {
            file: string;
            delay: number;
        }[];
    };
}
