import type { Autocomplete, CheckAuthorizationWithCustomPermissions, OrganizationCustomPermissionKey, OrganizationCustomRoleKey } from '@clerk/types';
import type { Snippet } from 'svelte';
type ProtectProps = {
    condition?: never;
    role: OrganizationCustomRoleKey;
    permission?: never;
    feature?: never;
    plan?: never;
} | {
    condition?: never;
    role?: never;
    feature?: never;
    plan?: never;
    permission: OrganizationCustomPermissionKey;
} | {
    condition: (has: CheckAuthorizationWithCustomPermissions) => boolean;
    role?: never;
    permission?: never;
    feature?: never;
    plan?: never;
} | {
    condition?: never;
    role?: never;
    permission?: never;
    feature: Autocomplete<`user:${string}` | `org:${string}`>;
    plan?: never;
} | {
    condition?: never;
    role?: never;
    permission?: never;
    feature?: never;
    plan: Autocomplete<`user:${string}` | `org:${string}`>;
} | {
    condition?: never;
    role?: never;
    permission?: never;
    feature?: never;
    plan?: never;
};
type $$ComponentProps = ProtectProps & {
    children: Snippet;
    fallback?: Snippet;
};
declare const Protect: import("svelte").Component<$$ComponentProps, {}, "">;
type Protect = ReturnType<typeof Protect>;
export default Protect;
