import { z } from 'zod';
export declare const DiscordMemberSchema: z.ZodObject<{
    avatarURL: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    displayName: z.ZodString;
    id: z.ZodString;
}, "strip", z.ZodTypeAny, {
    id: string;
    displayName: string;
    avatarURL?: string | null | undefined;
}, {
    id: string;
    displayName: string;
    avatarURL?: string | null | undefined;
}>;
declare const TokenSetSchema: z.ZodObject<{
    access_token: z.ZodString;
    token_type: z.ZodString;
    scope: z.ZodString;
}, "strip", z.ZodTypeAny, {
    access_token: string;
    token_type: string;
    scope: string;
}, {
    access_token: string;
    token_type: string;
    scope: string;
}>;
export declare const PlayerPreferencesSchema: z.ZodDefault<z.ZodOptional<z.ZodObject<{
    volumeRate: z.ZodOptional<z.ZodNumber>;
    playbackRate: z.ZodOptional<z.ZodNumber>;
    autoplay: z.ZodOptional<z.ZodBoolean>;
    subtitle: z.ZodDefault<z.ZodOptional<z.ZodObject<{
        id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
        mode: z.ZodDefault<z.ZodNullable<z.ZodUnion<[z.ZodUnion<[z.ZodLiteral<"disabled">, z.ZodLiteral<"hidden">]>, z.ZodLiteral<"showing">]>>>;
    }, "strip", z.ZodTypeAny, {
        id: string | null;
        mode: "disabled" | "hidden" | "showing" | null;
    }, {
        id?: string | null | undefined;
        mode?: "disabled" | "hidden" | "showing" | null | undefined;
    }>>>;
    muted: z.ZodOptional<z.ZodBoolean>;
    theater: z.ZodOptional<z.ZodBoolean>;
    defaultView: z.ZodOptional<z.ZodString>;
    activeSidebarTab: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    subtitle: {
        id: string | null;
        mode: "disabled" | "hidden" | "showing" | null;
    };
    volumeRate?: number | undefined;
    playbackRate?: number | undefined;
    autoplay?: boolean | undefined;
    muted?: boolean | undefined;
    theater?: boolean | undefined;
    defaultView?: string | undefined;
    activeSidebarTab?: number | undefined;
}, {
    volumeRate?: number | undefined;
    playbackRate?: number | undefined;
    autoplay?: boolean | undefined;
    subtitle?: {
        id?: string | null | undefined;
        mode?: "disabled" | "hidden" | "showing" | null | undefined;
    } | undefined;
    muted?: boolean | undefined;
    theater?: boolean | undefined;
    defaultView?: string | undefined;
    activeSidebarTab?: number | undefined;
}>>>;
declare const PresencePreferencesSchema: z.ZodDefault<z.ZodOptional<z.ZodObject<{
    optOut: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
    optOut: boolean;
}, {
    optOut: boolean;
}>>>;
export declare function deleteDb(): Promise<null | undefined>;
export declare function getAuthInfo(): Promise<{
    id: string;
    tokenSet: {
        access_token: string;
        token_type: string;
        scope: string;
    };
    email: string;
    name?: string | null | undefined;
} | null>;
export declare function getUserInfo(): Promise<{
    id: string;
    name: string | null | undefined;
    email: string;
    avatarUrl: string;
} | null>;
export declare function requireAuthInfo({ request, redirectTo, }: {
    request: Request;
    redirectTo?: string | null;
}): Promise<{
    id: string;
    tokenSet: {
        access_token: string;
        token_type: string;
        scope: string;
    };
    email: string;
    name?: string | null | undefined;
}>;
export declare function setAuthInfo({ tokenSet, email, name, }: {
    tokenSet: Partial<z.infer<typeof TokenSetSchema>>;
    email?: string;
    name?: string;
}): Promise<{
    id: string;
    tokenSet: {
        access_token: string;
        token_type: string;
        scope: string;
    };
    email: string;
    name?: string | null | undefined;
}>;
export declare function getPreferences(): Promise<{
    player: {
        subtitle: {
            id: string | null;
            mode: "disabled" | "hidden" | "showing" | null;
        };
        volumeRate?: number | undefined;
        playbackRate?: number | undefined;
        autoplay?: boolean | undefined;
        muted?: boolean | undefined;
        theater?: boolean | undefined;
        defaultView?: string | undefined;
        activeSidebarTab?: number | undefined;
    };
    presence: {
        optOut: boolean;
    };
} | null>;
export declare function setPlayerPreferences(playerPreferences: z.input<typeof PlayerPreferencesSchema>): Promise<{
    volumeRate?: number | undefined;
    playbackRate?: number | undefined;
    autoplay?: boolean | undefined;
    subtitle?: {
        id?: string | null | undefined;
        mode?: "disabled" | "hidden" | "showing" | null | undefined;
    } | undefined;
    muted?: boolean | undefined;
    theater?: boolean | undefined;
    defaultView?: string | undefined;
    activeSidebarTab?: number | undefined;
} | undefined>;
export declare function setPresencePreferences(presnecePreferences: z.input<typeof PresencePreferencesSchema>): Promise<{
    optOut: boolean;
} | undefined>;
export declare function getDiscordMember(): Promise<{
    id: string;
    displayName: string;
    avatarURL?: string | null | undefined;
} | null>;
export declare function setDiscordMember(discordMember: z.infer<typeof DiscordMemberSchema>): Promise<{
    id: string;
    displayName: string;
    avatarURL?: string | null | undefined;
}>;
export declare function deleteDiscordInfo(): Promise<void>;
export declare function readOnboardingData(): Promise<{
    finishedTourVideo: boolean;
} | null>;
export declare function updateOnboardingData(onboardingData: {
    finishedTourVideo: boolean;
}): Promise<{
    finishedTourVideo: boolean;
}>;
export {};
