import { z } from 'zod';
import { LCNBoostClaimLinkSigningAuthorityType, LCNBoostClaimLinkOptionsType, LCNBoostStatusEnum } from '@learncard/types';
import { ProfileType } from './profile';
import { AppStoreListingType } from './app-store-listing';
export declare const BoostStatus: z.ZodEnum<{
    DRAFT: "DRAFT";
    PROVISIONAL: "PROVISIONAL";
    LIVE: "LIVE";
}>;
export type BoostStatusEnum = LCNBoostStatusEnum;
export declare const BoostValidator: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    status: z.ZodOptional<z.ZodEnum<{
        DRAFT: "DRAFT";
        PROVISIONAL: "PROVISIONAL";
        LIVE: "LIVE";
    }>>;
    type: z.ZodOptional<z.ZodString>;
    category: z.ZodOptional<z.ZodString>;
    autoConnectRecipients: z.ZodOptional<z.ZodBoolean>;
    meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    defaultPermissions: z.ZodOptional<z.ZodObject<{
        role: z.ZodString;
        canView: z.ZodDefault<z.ZodBoolean>;
        canEdit: z.ZodBoolean;
        canIssue: z.ZodBoolean;
        canRevoke: z.ZodBoolean;
        canManagePermissions: z.ZodBoolean;
        canIssueChildren: z.ZodString;
        canCreateChildren: z.ZodString;
        canEditChildren: z.ZodString;
        canRevokeChildren: z.ZodString;
        canManageChildrenPermissions: z.ZodString;
        canManageChildrenProfiles: z.ZodOptional<z.ZodBoolean>;
        canViewAnalytics: z.ZodBoolean;
    }, z.core.$strip>>;
    allowAnyoneToCreateChildren: z.ZodOptional<z.ZodBoolean>;
    id: z.ZodString;
    boost: z.ZodString;
}, z.core.$strip>;
export type BoostType = z.infer<typeof BoostValidator>;
export declare const BoostWithClaimPermissionsValidator: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    status: z.ZodOptional<z.ZodEnum<{
        DRAFT: "DRAFT";
        PROVISIONAL: "PROVISIONAL";
        LIVE: "LIVE";
    }>>;
    type: z.ZodOptional<z.ZodString>;
    category: z.ZodOptional<z.ZodString>;
    autoConnectRecipients: z.ZodOptional<z.ZodBoolean>;
    meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    defaultPermissions: z.ZodOptional<z.ZodObject<{
        role: z.ZodString;
        canView: z.ZodDefault<z.ZodBoolean>;
        canEdit: z.ZodBoolean;
        canIssue: z.ZodBoolean;
        canRevoke: z.ZodBoolean;
        canManagePermissions: z.ZodBoolean;
        canIssueChildren: z.ZodString;
        canCreateChildren: z.ZodString;
        canEditChildren: z.ZodString;
        canRevokeChildren: z.ZodString;
        canManageChildrenPermissions: z.ZodString;
        canManageChildrenProfiles: z.ZodOptional<z.ZodBoolean>;
        canViewAnalytics: z.ZodBoolean;
    }, z.core.$strip>>;
    allowAnyoneToCreateChildren: z.ZodOptional<z.ZodBoolean>;
    id: z.ZodString;
    boost: z.ZodString;
    claimPermissions: z.ZodOptional<z.ZodObject<{
        role: z.ZodString;
        canView: z.ZodDefault<z.ZodBoolean>;
        canEdit: z.ZodBoolean;
        canIssue: z.ZodBoolean;
        canRevoke: z.ZodBoolean;
        canManagePermissions: z.ZodBoolean;
        canIssueChildren: z.ZodString;
        canCreateChildren: z.ZodString;
        canEditChildren: z.ZodString;
        canRevokeChildren: z.ZodString;
        canManageChildrenPermissions: z.ZodString;
        canManageChildrenProfiles: z.ZodOptional<z.ZodBoolean>;
        canViewAnalytics: z.ZodBoolean;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type BoostWithClaimPermissionsType = z.infer<typeof BoostWithClaimPermissionsValidator>;
export declare const FlatBoostValidator: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodOptional<z.ZodString>;
    status: z.ZodOptional<z.ZodEnum<{
        DRAFT: "DRAFT";
        PROVISIONAL: "PROVISIONAL";
        LIVE: "LIVE";
    }>>;
    type: z.ZodOptional<z.ZodString>;
    category: z.ZodOptional<z.ZodString>;
    autoConnectRecipients: z.ZodOptional<z.ZodBoolean>;
    defaultPermissions: z.ZodOptional<z.ZodObject<{
        role: z.ZodString;
        canView: z.ZodDefault<z.ZodBoolean>;
        canEdit: z.ZodBoolean;
        canIssue: z.ZodBoolean;
        canRevoke: z.ZodBoolean;
        canManagePermissions: z.ZodBoolean;
        canIssueChildren: z.ZodString;
        canCreateChildren: z.ZodString;
        canEditChildren: z.ZodString;
        canRevokeChildren: z.ZodString;
        canManageChildrenPermissions: z.ZodString;
        canManageChildrenProfiles: z.ZodOptional<z.ZodBoolean>;
        canViewAnalytics: z.ZodBoolean;
    }, z.core.$strip>>;
    allowAnyoneToCreateChildren: z.ZodOptional<z.ZodBoolean>;
    boost: z.ZodString;
}, z.core.$catchall<z.ZodAny>>;
export type FlatBoostType = z.infer<typeof FlatBoostValidator>;
export declare const BoostClaimLinkSigningAuthorityValidator: z.ZodObject<{
    endpoint: z.ZodString;
    name: z.ZodString;
    did: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type BoostClaimLinkSigningAuthorityType = LCNBoostClaimLinkSigningAuthorityType;
export declare const BoostClaimLinkOptionsValidator: z.ZodObject<{
    ttlSeconds: z.ZodOptional<z.ZodNumber>;
    totalUses: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
export type BoostClaimLinkOptionsType = LCNBoostClaimLinkOptionsType;
export declare const BoostGenerateClaimLinkInput: z.ZodObject<{
    boostUri: z.ZodString;
    challenge: z.ZodOptional<z.ZodString>;
    claimLinkSA: z.ZodObject<{
        endpoint: z.ZodString;
        name: z.ZodString;
        did: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>;
    options: z.ZodOptional<z.ZodObject<{
        ttlSeconds: z.ZodOptional<z.ZodNumber>;
        totalUses: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type BoostGenerateClaimLinkType = z.infer<typeof BoostGenerateClaimLinkInput>;
export declare const BoostClaimLinkCacheValueValidator: z.ZodObject<{
    claimLinkSA: z.ZodObject<{
        endpoint: z.ZodString;
        name: z.ZodString;
        did: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>;
    options: z.ZodObject<{
        ttlSeconds: z.ZodOptional<z.ZodNumber>;
        totalUses: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>;
    generatorProfileId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type BoostClaimLinkCacheValueType = z.infer<typeof BoostClaimLinkCacheValueValidator>;
export type ProfileBoostOwner = {
    type: 'profile';
    profile: ProfileType;
};
export type AppStoreListingBoostOwner = {
    type: 'appStoreListing';
    listing: AppStoreListingType;
    ownerProfile: ProfileType;
};
export type BoostOwner = ProfileBoostOwner | AppStoreListingBoostOwner;
export declare function getBoostOwnerProfile(owner: BoostOwner): ProfileType;
export declare function getBoostOwnerDisplayName(owner: BoostOwner): string;
export declare function isProfileBoostOwner(owner: BoostOwner): owner is ProfileBoostOwner;
export declare function isAppStoreListingBoostOwner(owner: BoostOwner): owner is AppStoreListingBoostOwner;
//# sourceMappingURL=boost.d.ts.map