import * as z from "zod/v4-mini";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { BenefitGitHubRepositoryProperties, BenefitGitHubRepositoryProperties$Outbound } from "./benefitgithubrepositoryproperties.js";
import { BenefitVisibility } from "./benefitvisibility.js";
import { MetadataOutputType, MetadataOutputType$Outbound } from "./metadataoutputtype.js";
/**
 * A benefit of type `github_repository`.
 *
 * @remarks
 *
 * Use it to automatically invite your backers to a private GitHub repository.
 */
export type BenefitGitHubRepository = {
    /**
     * The ID of the benefit.
     */
    id: string;
    /**
     * Creation timestamp of the object.
     */
    createdAt: Date;
    /**
     * Last modification timestamp of the object.
     */
    modifiedAt: Date | null;
    type: "github_repository";
    /**
     * The description of the benefit.
     */
    description: string;
    /**
     * Whether the benefit is selectable when creating a product.
     */
    selectable: boolean;
    /**
     * Whether the benefit is deletable.
     */
    deletable: boolean;
    /**
     * Whether the benefit is deleted.
     */
    isDeleted: boolean;
    /**
     * The ID of the organization owning the benefit.
     */
    organizationId: string;
    metadata: {
        [k: string]: MetadataOutputType;
    };
    visibility: BenefitVisibility;
    /**
     * Properties for a benefit of type `github_repository`.
     */
    properties: BenefitGitHubRepositoryProperties;
    visibilityConfigurable: boolean;
};
/** @internal */
export declare const BenefitGitHubRepository$inboundSchema: z.ZodMiniType<BenefitGitHubRepository, unknown>;
/** @internal */
export type BenefitGitHubRepository$Outbound = {
    id: string;
    created_at: string;
    modified_at: string | null;
    type: "github_repository";
    description: string;
    selectable: boolean;
    deletable: boolean;
    is_deleted: boolean;
    organization_id: string;
    metadata: {
        [k: string]: MetadataOutputType$Outbound;
    };
    visibility: string;
    properties: BenefitGitHubRepositoryProperties$Outbound;
    visibility_configurable: boolean;
};
/** @internal */
export declare const BenefitGitHubRepository$outboundSchema: z.ZodMiniType<BenefitGitHubRepository$Outbound, BenefitGitHubRepository>;
export declare function benefitGitHubRepositoryToJSON(benefitGitHubRepository: BenefitGitHubRepository): string;
export declare function benefitGitHubRepositoryFromJSON(jsonString: string): SafeParseResult<BenefitGitHubRepository, SDKValidationError>;
//# sourceMappingURL=benefitgithubrepository.d.ts.map