import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { PassThroughBody, PassThroughBody$Outbound } from "./passthroughbody.js";
import { SharedLinkTarget } from "./sharedlinktarget.js";
/**
 * The scope of the shared link.
 */
export declare const Scope: {
    readonly Public: "public";
    readonly Company: "company";
};
/**
 * The scope of the shared link.
 */
export type Scope = ClosedEnum<typeof Scope>;
export type SharedLink = {
    /**
     * The URL that can be used to view the file.
     */
    url?: string | null | undefined;
    /**
     * The URL that can be used to download the file.
     */
    downloadUrl?: string | null | undefined;
    target?: SharedLinkTarget | undefined;
    /**
     * The scope of the shared link.
     */
    scope?: Scope | null | undefined;
    /**
     * Indicated if the shared link is password protected.
     */
    passwordProtected?: boolean | null | undefined;
    expiresAt?: Date | null | undefined;
    /**
     * The date and time when the object was last updated.
     */
    updatedAt?: Date | null | undefined;
    /**
     * The date and time when the object was created.
     */
    createdAt?: Date | null | undefined;
    /**
     * The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.
     */
    passThrough?: Array<PassThroughBody> | undefined;
};
export type SharedLinkInput = {
    /**
     * The URL that can be used to download the file.
     */
    downloadUrl?: string | null | undefined;
    /**
     * The ID of the file or folder to link.
     */
    targetId: string | null;
    /**
     * The scope of the shared link.
     */
    scope?: Scope | null | undefined;
    /**
     * Optional password for the shared link.
     */
    password?: string | null | undefined;
    /**
     * The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.
     */
    passThrough?: Array<PassThroughBody> | undefined;
};
/** @internal */
export declare const Scope$inboundSchema: z.ZodNativeEnum<typeof Scope>;
/** @internal */
export declare const Scope$outboundSchema: z.ZodNativeEnum<typeof Scope>;
/** @internal */
export declare const SharedLink$inboundSchema: z.ZodType<SharedLink, z.ZodTypeDef, unknown>;
export declare function sharedLinkFromJSON(jsonString: string): SafeParseResult<SharedLink, SDKValidationError>;
/** @internal */
export type SharedLinkInput$Outbound = {
    download_url?: string | null | undefined;
    target_id: string | null;
    scope?: string | null | undefined;
    password?: string | null | undefined;
    pass_through?: Array<PassThroughBody$Outbound> | undefined;
};
/** @internal */
export declare const SharedLinkInput$outboundSchema: z.ZodType<SharedLinkInput$Outbound, z.ZodTypeDef, SharedLinkInput>;
export declare function sharedLinkInputToJSON(sharedLinkInput: SharedLinkInput): string;
//# sourceMappingURL=sharedlink.d.ts.map