import * as z from "zod/v4-mini";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { BenefitGitHubRepository, BenefitGitHubRepository$Outbound } from "./benefitgithubrepository.js";
import { BenefitGrantError, BenefitGrantError$Outbound } from "./benefitgranterror.js";
import { BenefitGrantGitHubRepositoryProperties, BenefitGrantGitHubRepositoryProperties$Outbound } from "./benefitgrantgithubrepositoryproperties.js";
import { Customer, Customer$Outbound } from "./customer.js";
import { Member, Member$Outbound } from "./member.js";
export type BenefitGrantGitHubRepositoryWebhook = {
    /**
     * Creation timestamp of the object.
     */
    createdAt: Date;
    /**
     * Last modification timestamp of the object.
     */
    modifiedAt: Date | null;
    /**
     * The ID of the grant.
     */
    id: string;
    /**
     * The timestamp when the benefit was granted. If `None`, the benefit is not granted.
     */
    grantedAt?: Date | null | undefined;
    /**
     * Whether the benefit is granted.
     */
    isGranted: boolean;
    /**
     * The timestamp when the benefit was revoked. If `None`, the benefit is not revoked.
     */
    revokedAt?: Date | null | undefined;
    /**
     * Whether the benefit is revoked.
     */
    isRevoked: boolean;
    /**
     * The ID of the subscription that granted this benefit.
     */
    subscriptionId: string | null;
    /**
     * The ID of the order that granted this benefit.
     */
    orderId: string | null;
    /**
     * The ID of the customer concerned by this grant.
     */
    customerId: string;
    /**
     * The ID of the member concerned by this grant.
     */
    memberId?: string | null | undefined;
    /**
     * The ID of the benefit concerned by this grant.
     */
    benefitId: string;
    /**
     * The error information if the benefit grant failed with an unrecoverable error.
     */
    error?: BenefitGrantError | null | undefined;
    customer: Customer;
    member?: Member | null | undefined;
    /**
     * A benefit of type `github_repository`.
     *
     * @remarks
     *
     * Use it to automatically invite your backers to a private GitHub repository.
     */
    benefit: BenefitGitHubRepository;
    properties: BenefitGrantGitHubRepositoryProperties;
    previousProperties?: BenefitGrantGitHubRepositoryProperties | null | undefined;
};
/** @internal */
export declare const BenefitGrantGitHubRepositoryWebhook$inboundSchema: z.ZodMiniType<BenefitGrantGitHubRepositoryWebhook, unknown>;
/** @internal */
export type BenefitGrantGitHubRepositoryWebhook$Outbound = {
    created_at: string;
    modified_at: string | null;
    id: string;
    granted_at?: string | null | undefined;
    is_granted: boolean;
    revoked_at?: string | null | undefined;
    is_revoked: boolean;
    subscription_id: string | null;
    order_id: string | null;
    customer_id: string;
    member_id?: string | null | undefined;
    benefit_id: string;
    error?: BenefitGrantError$Outbound | null | undefined;
    customer: Customer$Outbound;
    member?: Member$Outbound | null | undefined;
    benefit: BenefitGitHubRepository$Outbound;
    properties: BenefitGrantGitHubRepositoryProperties$Outbound;
    previous_properties?: BenefitGrantGitHubRepositoryProperties$Outbound | null | undefined;
};
/** @internal */
export declare const BenefitGrantGitHubRepositoryWebhook$outboundSchema: z.ZodMiniType<BenefitGrantGitHubRepositoryWebhook$Outbound, BenefitGrantGitHubRepositoryWebhook>;
export declare function benefitGrantGitHubRepositoryWebhookToJSON(benefitGrantGitHubRepositoryWebhook: BenefitGrantGitHubRepositoryWebhook): string;
export declare function benefitGrantGitHubRepositoryWebhookFromJSON(jsonString: string): SafeParseResult<BenefitGrantGitHubRepositoryWebhook, SDKValidationError>;
//# sourceMappingURL=benefitgrantgithubrepositorywebhook.d.ts.map