import { z } from 'zod';
export declare const ssoConfigSchema: z.ZodObject<{
    provider: z.ZodString;
    text: z.ZodString;
    icon: z.ZodOptional<z.ZodString>;
    url: z.ZodString;
}, "strip", z.ZodTypeAny, {
    provider: string;
    text: string;
    url: string;
    icon?: string | undefined;
}, {
    provider: string;
    text: string;
    url: string;
    icon?: string | undefined;
}>;
export declare const loginConfigSchema: z.ZodNullable<z.ZodObject<{
    type: z.ZodEnum<["sso", "credentials", "both"]>;
    sso: z.ZodOptional<z.ZodObject<{
        provider: z.ZodString;
        text: z.ZodString;
        icon: z.ZodOptional<z.ZodString>;
        url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        provider: string;
        text: string;
        url: string;
        icon?: string | undefined;
    }, {
        provider: string;
        text: string;
        url: string;
        icon?: string | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    type: "credentials" | "sso" | "both";
    sso?: {
        provider: string;
        text: string;
        url: string;
        icon?: string | undefined;
    } | undefined;
}, {
    type: "credentials" | "sso" | "both";
    sso?: {
        provider: string;
        text: string;
        url: string;
        icon?: string | undefined;
    } | undefined;
}>>;
export declare const publicCapabilitiesSchema: z.ZodObject<{
    enabled: z.ZodBoolean;
    login: z.ZodNullable<z.ZodObject<{
        type: z.ZodEnum<["sso", "credentials", "both"]>;
        sso: z.ZodOptional<z.ZodObject<{
            provider: z.ZodString;
            text: z.ZodString;
            icon: z.ZodOptional<z.ZodString>;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        }, {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    }, {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    enabled: boolean;
    login: {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    } | null;
}, {
    enabled: boolean;
    login: {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    } | null;
}>;
export declare const authenticatedUserSchema: z.ZodObject<{
    id: z.ZodString;
    email: z.ZodOptional<z.ZodString>;
    name: z.ZodOptional<z.ZodString>;
    avatarUrl: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    id: string;
    name?: string | undefined;
    email?: string | undefined;
    avatarUrl?: string | undefined;
}, {
    id: string;
    name?: string | undefined;
    email?: string | undefined;
    avatarUrl?: string | undefined;
}>;
export declare const capabilityFlagsSchema: z.ZodObject<{
    user: z.ZodBoolean;
    session: z.ZodBoolean;
    sso: z.ZodBoolean;
    rbac: z.ZodBoolean;
    acl: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
    user: boolean;
    sso: boolean;
    session: boolean;
    rbac: boolean;
    acl: boolean;
}, {
    user: boolean;
    sso: boolean;
    session: boolean;
    rbac: boolean;
    acl: boolean;
}>;
export declare const userAccessSchema: z.ZodNullable<z.ZodObject<{
    roles: z.ZodArray<z.ZodString, "many">;
    permissions: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    roles: string[];
    permissions: string[];
}, {
    roles: string[];
    permissions: string[];
}>>;
export declare const authenticatedCapabilitiesSchema: z.ZodObject<{
    enabled: z.ZodBoolean;
    login: z.ZodNullable<z.ZodObject<{
        type: z.ZodEnum<["sso", "credentials", "both"]>;
        sso: z.ZodOptional<z.ZodObject<{
            provider: z.ZodString;
            text: z.ZodString;
            icon: z.ZodOptional<z.ZodString>;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        }, {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    }, {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    }>>;
} & {
    user: z.ZodObject<{
        id: z.ZodString;
        email: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        avatarUrl: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    }, {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    }>;
    capabilities: z.ZodObject<{
        user: z.ZodBoolean;
        session: z.ZodBoolean;
        sso: z.ZodBoolean;
        rbac: z.ZodBoolean;
        acl: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        user: boolean;
        sso: boolean;
        session: boolean;
        rbac: boolean;
        acl: boolean;
    }, {
        user: boolean;
        sso: boolean;
        session: boolean;
        rbac: boolean;
        acl: boolean;
    }>;
    access: z.ZodNullable<z.ZodObject<{
        roles: z.ZodArray<z.ZodString, "many">;
        permissions: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        roles: string[];
        permissions: string[];
    }, {
        roles: string[];
        permissions: string[];
    }>>;
}, "strip", z.ZodTypeAny, {
    enabled: boolean;
    user: {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    };
    capabilities: {
        user: boolean;
        sso: boolean;
        session: boolean;
        rbac: boolean;
        acl: boolean;
    };
    login: {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    } | null;
    access: {
        roles: string[];
        permissions: string[];
    } | null;
}, {
    enabled: boolean;
    user: {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    };
    capabilities: {
        user: boolean;
        sso: boolean;
        session: boolean;
        rbac: boolean;
        acl: boolean;
    };
    login: {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    } | null;
    access: {
        roles: string[];
        permissions: string[];
    } | null;
}>;
export declare const capabilitiesResponseSchema: z.ZodUnion<[z.ZodObject<{
    enabled: z.ZodBoolean;
    login: z.ZodNullable<z.ZodObject<{
        type: z.ZodEnum<["sso", "credentials", "both"]>;
        sso: z.ZodOptional<z.ZodObject<{
            provider: z.ZodString;
            text: z.ZodString;
            icon: z.ZodOptional<z.ZodString>;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        }, {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    }, {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    enabled: boolean;
    login: {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    } | null;
}, {
    enabled: boolean;
    login: {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    } | null;
}>, z.ZodObject<{
    enabled: z.ZodBoolean;
    login: z.ZodNullable<z.ZodObject<{
        type: z.ZodEnum<["sso", "credentials", "both"]>;
        sso: z.ZodOptional<z.ZodObject<{
            provider: z.ZodString;
            text: z.ZodString;
            icon: z.ZodOptional<z.ZodString>;
            url: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        }, {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    }, {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    }>>;
} & {
    user: z.ZodObject<{
        id: z.ZodString;
        email: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        avatarUrl: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    }, {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    }>;
    capabilities: z.ZodObject<{
        user: z.ZodBoolean;
        session: z.ZodBoolean;
        sso: z.ZodBoolean;
        rbac: z.ZodBoolean;
        acl: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        user: boolean;
        sso: boolean;
        session: boolean;
        rbac: boolean;
        acl: boolean;
    }, {
        user: boolean;
        sso: boolean;
        session: boolean;
        rbac: boolean;
        acl: boolean;
    }>;
    access: z.ZodNullable<z.ZodObject<{
        roles: z.ZodArray<z.ZodString, "many">;
        permissions: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        roles: string[];
        permissions: string[];
    }, {
        roles: string[];
        permissions: string[];
    }>>;
}, "strip", z.ZodTypeAny, {
    enabled: boolean;
    user: {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    };
    capabilities: {
        user: boolean;
        sso: boolean;
        session: boolean;
        rbac: boolean;
        acl: boolean;
    };
    login: {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    } | null;
    access: {
        roles: string[];
        permissions: string[];
    } | null;
}, {
    enabled: boolean;
    user: {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    };
    capabilities: {
        user: boolean;
        sso: boolean;
        session: boolean;
        rbac: boolean;
        acl: boolean;
    };
    login: {
        type: "credentials" | "sso" | "both";
        sso?: {
            provider: string;
            text: string;
            url: string;
            icon?: string | undefined;
        } | undefined;
    } | null;
    access: {
        roles: string[];
        permissions: string[];
    } | null;
}>]>;
export declare const ssoLoginQuerySchema: z.ZodObject<{
    redirect_uri: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    redirect_uri?: string | undefined;
}, {
    redirect_uri?: string | undefined;
}>;
export declare const ssoCallbackQuerySchema: z.ZodObject<{
    code: z.ZodString;
    state: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    code: string;
    state?: string | undefined;
}, {
    code: string;
    state?: string | undefined;
}>;
export declare const ssoLoginResponseSchema: z.ZodObject<{
    url: z.ZodString;
}, "strip", z.ZodTypeAny, {
    url: string;
}, {
    url: string;
}>;
export declare const ssoCallbackResponseSchema: z.ZodObject<{
    success: z.ZodBoolean;
    user: z.ZodOptional<z.ZodObject<{
        id: z.ZodString;
        email: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        avatarUrl: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    }, {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    }>>;
    redirectTo: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    success: boolean;
    user?: {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    } | undefined;
    redirectTo?: string | undefined;
}, {
    success: boolean;
    user?: {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    } | undefined;
    redirectTo?: string | undefined;
}>;
export declare const logoutResponseSchema: z.ZodObject<{
    success: z.ZodBoolean;
    redirectTo: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    success: boolean;
    redirectTo?: string | undefined;
}, {
    success: boolean;
    redirectTo?: string | undefined;
}>;
export declare const currentUserResponseSchema: z.ZodNullable<z.ZodObject<{
    id: z.ZodString;
    email: z.ZodOptional<z.ZodString>;
    name: z.ZodOptional<z.ZodString>;
    avatarUrl: z.ZodOptional<z.ZodString>;
    roles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    permissions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
    id: string;
    name?: string | undefined;
    email?: string | undefined;
    avatarUrl?: string | undefined;
    roles?: string[] | undefined;
    permissions?: string[] | undefined;
}, {
    id: string;
    name?: string | undefined;
    email?: string | undefined;
    avatarUrl?: string | undefined;
    roles?: string[] | undefined;
    permissions?: string[] | undefined;
}>>;
export declare const credentialsSignInBodySchema: z.ZodObject<{
    email: z.ZodString;
    password: z.ZodString;
}, "strip", z.ZodTypeAny, {
    email: string;
    password: string;
}, {
    email: string;
    password: string;
}>;
export declare const credentialsSignUpBodySchema: z.ZodObject<{
    email: z.ZodString;
    password: z.ZodString;
    name: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    email: string;
    password: string;
    name?: string | undefined;
}, {
    email: string;
    password: string;
    name?: string | undefined;
}>;
export declare const credentialsResponseSchema: z.ZodObject<{
    user: z.ZodObject<{
        id: z.ZodString;
        email: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        avatarUrl: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    }, {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    }>;
    token: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    user: {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    };
    token?: string | undefined;
}, {
    user: {
        id: string;
        name?: string | undefined;
        email?: string | undefined;
        avatarUrl?: string | undefined;
    };
    token?: string | undefined;
}>;
//# sourceMappingURL=auth.d.ts.map