import * as z from "zod/v4-mini";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { BenefitGrantCustomProperties, BenefitGrantCustomProperties$Outbound } from "./benefitgrantcustomproperties.js";
import { BenefitGrantDiscordProperties, BenefitGrantDiscordProperties$Outbound } from "./benefitgrantdiscordproperties.js";
import { BenefitGrantDownloadablesProperties, BenefitGrantDownloadablesProperties$Outbound } from "./benefitgrantdownloadablesproperties.js";
import { BenefitGrantFeatureFlagProperties, BenefitGrantFeatureFlagProperties$Outbound } from "./benefitgrantfeatureflagproperties.js";
import { BenefitGrantGitHubRepositoryProperties, BenefitGrantGitHubRepositoryProperties$Outbound } from "./benefitgrantgithubrepositoryproperties.js";
import { BenefitGrantLicenseKeysProperties, BenefitGrantLicenseKeysProperties$Outbound } from "./benefitgrantlicensekeysproperties.js";
import { BenefitGrantSlackSharedChannelProperties, BenefitGrantSlackSharedChannelProperties$Outbound } from "./benefitgrantslacksharedchannelproperties.js";
import { BenefitType } from "./benefittype.js";
import { MetadataOutputType, MetadataOutputType$Outbound } from "./metadataoutputtype.js";
export type CustomerStateBenefitGrantProperties = BenefitGrantDiscordProperties | BenefitGrantGitHubRepositoryProperties | BenefitGrantDownloadablesProperties | BenefitGrantLicenseKeysProperties | BenefitGrantCustomProperties | BenefitGrantFeatureFlagProperties | BenefitGrantSlackSharedChannelProperties;
/**
 * An active benefit grant for a customer.
 */
export type CustomerStateBenefitGrant = {
    /**
     * The ID of the grant.
     */
    id: string;
    /**
     * Creation timestamp of the object.
     */
    createdAt: Date;
    /**
     * Last modification timestamp of the object.
     */
    modifiedAt: Date | null;
    /**
     * The timestamp when the benefit was granted.
     */
    grantedAt: Date;
    /**
     * The ID of the benefit concerned by this grant.
     */
    benefitId: string;
    benefitType: BenefitType;
    benefitMetadata: {
        [k: string]: MetadataOutputType;
    };
    properties: BenefitGrantDiscordProperties | BenefitGrantGitHubRepositoryProperties | BenefitGrantDownloadablesProperties | BenefitGrantLicenseKeysProperties | BenefitGrantCustomProperties | BenefitGrantFeatureFlagProperties | BenefitGrantSlackSharedChannelProperties;
};
/** @internal */
export declare const CustomerStateBenefitGrantProperties$inboundSchema: z.ZodMiniType<CustomerStateBenefitGrantProperties, unknown>;
/** @internal */
export type CustomerStateBenefitGrantProperties$Outbound = BenefitGrantDiscordProperties$Outbound | BenefitGrantGitHubRepositoryProperties$Outbound | BenefitGrantDownloadablesProperties$Outbound | BenefitGrantLicenseKeysProperties$Outbound | BenefitGrantCustomProperties$Outbound | BenefitGrantFeatureFlagProperties$Outbound | BenefitGrantSlackSharedChannelProperties$Outbound;
/** @internal */
export declare const CustomerStateBenefitGrantProperties$outboundSchema: z.ZodMiniType<CustomerStateBenefitGrantProperties$Outbound, CustomerStateBenefitGrantProperties>;
export declare function customerStateBenefitGrantPropertiesToJSON(customerStateBenefitGrantProperties: CustomerStateBenefitGrantProperties): string;
export declare function customerStateBenefitGrantPropertiesFromJSON(jsonString: string): SafeParseResult<CustomerStateBenefitGrantProperties, SDKValidationError>;
/** @internal */
export declare const CustomerStateBenefitGrant$inboundSchema: z.ZodMiniType<CustomerStateBenefitGrant, unknown>;
/** @internal */
export type CustomerStateBenefitGrant$Outbound = {
    id: string;
    created_at: string;
    modified_at: string | null;
    granted_at: string;
    benefit_id: string;
    benefit_type: string;
    benefit_metadata: {
        [k: string]: MetadataOutputType$Outbound;
    };
    properties: BenefitGrantDiscordProperties$Outbound | BenefitGrantGitHubRepositoryProperties$Outbound | BenefitGrantDownloadablesProperties$Outbound | BenefitGrantLicenseKeysProperties$Outbound | BenefitGrantCustomProperties$Outbound | BenefitGrantFeatureFlagProperties$Outbound | BenefitGrantSlackSharedChannelProperties$Outbound;
};
/** @internal */
export declare const CustomerStateBenefitGrant$outboundSchema: z.ZodMiniType<CustomerStateBenefitGrant$Outbound, CustomerStateBenefitGrant>;
export declare function customerStateBenefitGrantToJSON(customerStateBenefitGrant: CustomerStateBenefitGrant): string;
export declare function customerStateBenefitGrantFromJSON(jsonString: string): SafeParseResult<CustomerStateBenefitGrant, SDKValidationError>;
//# sourceMappingURL=customerstatebenefitgrant.d.ts.map