/**
 * Cloudflare MEMBERSHIPS API
 *
 * Generated from Cloudflare TypeScript SDK.
 * DO NOT EDIT - regenerate with: bun scripts/generate.ts --service memberships
 */
import * as Schema from "effect/Schema";
import type * as HttpClient from "effect/unstable/http/HttpClient";
import * as API from "../client/api.ts";
import type { Credentials } from "../credentials.ts";
import { type DefaultErrors } from "../errors.ts";
export interface GetMembershipRequest {
    membershipId: string;
}
export declare const GetMembershipRequest: Schema.Schema<GetMembershipRequest>;
export interface GetMembershipResponse {
    /** Membership identifier tag. */
    id?: string | null;
    account?: {
        id: string;
        name: string;
        type: "standard" | "enterprise";
        createdOn?: string | null;
        managedBy?: {
            parentOrgId?: string | null;
            parentOrgName?: string | null;
        } | null;
        settings?: {
            abuseContactEmail?: string | null;
            enforceTwofactor?: boolean | null;
        } | null;
    } | null;
    /** Enterprise only. Indicates whether or not API access is enabled specifically for this user on a given account. */
    apiAccessEnabled?: boolean | null;
    /** All access permissions for the user at the account. */
    permissions?: {
        analytics?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        billing?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        cachePurge?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        dns?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        dnsRecords?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        lb?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        logs?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        organization?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        ssl?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        waf?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        zoneSettings?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        zones?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
    } | null;
    /** Access policy for the membership */
    policies?: {
        id?: string | null;
        access?: "allow" | "deny" | null;
        permissionGroups?: {
            id: string;
            meta?: {
                key?: string | null;
                value?: string | null;
            } | null;
            name?: string | null;
        }[] | null;
        resourceGroups?: {
            id: string;
            scope: {
                key: string;
                objects: {
                    key: string;
                }[];
            }[];
            meta?: {
                key?: string | null;
                value?: string | null;
            } | null;
            name?: string | null;
        }[] | null;
    }[] | null;
    /** List of role names the membership has for this account. */
    roles?: string[] | null;
    /** Status of this membership. */
    status?: "accepted" | "pending" | "rejected" | null;
}
export declare const GetMembershipResponse: Schema.Schema<GetMembershipResponse>;
export type GetMembershipError = DefaultErrors;
export declare const getMembership: API.OperationMethod<GetMembershipRequest, GetMembershipResponse, GetMembershipError, Credentials | HttpClient.HttpClient>;
export interface ListMembershipsRequest {
}
export declare const ListMembershipsRequest: Schema.Schema<ListMembershipsRequest>;
export interface ListMembershipsResponse {
    result: {
        id?: string | null;
        account?: {
            id: string;
            name: string;
            type: "standard" | "enterprise";
            createdOn?: string | null;
            managedBy?: {
                parentOrgId?: string | null;
                parentOrgName?: string | null;
            } | null;
            settings?: {
                abuseContactEmail?: string | null;
                enforceTwofactor?: boolean | null;
            } | null;
        } | null;
        apiAccessEnabled?: boolean | null;
        permissions?: {
            analytics?: {
                read?: boolean | null;
                write?: boolean | null;
            } | null;
            billing?: {
                read?: boolean | null;
                write?: boolean | null;
            } | null;
            cachePurge?: {
                read?: boolean | null;
                write?: boolean | null;
            } | null;
            dns?: {
                read?: boolean | null;
                write?: boolean | null;
            } | null;
            dnsRecords?: {
                read?: boolean | null;
                write?: boolean | null;
            } | null;
            lb?: {
                read?: boolean | null;
                write?: boolean | null;
            } | null;
            logs?: {
                read?: boolean | null;
                write?: boolean | null;
            } | null;
            organization?: {
                read?: boolean | null;
                write?: boolean | null;
            } | null;
            ssl?: {
                read?: boolean | null;
                write?: boolean | null;
            } | null;
            waf?: {
                read?: boolean | null;
                write?: boolean | null;
            } | null;
            zoneSettings?: {
                read?: boolean | null;
                write?: boolean | null;
            } | null;
            zones?: {
                read?: boolean | null;
                write?: boolean | null;
            } | null;
        } | null;
        roles?: string[] | null;
        status?: "accepted" | "pending" | "rejected" | null;
    }[];
    resultInfo?: {
        count?: number | null;
        page?: number | null;
        perPage?: number | null;
        totalCount?: number | null;
    } | null;
}
export declare const ListMembershipsResponse: Schema.Schema<ListMembershipsResponse>;
export type ListMembershipsError = DefaultErrors;
export declare const listMemberships: API.PaginatedOperationMethod<ListMembershipsRequest, ListMembershipsResponse, ListMembershipsError, Credentials | HttpClient.HttpClient>;
export interface PutMembershipRequest {
    membershipId: string;
    /** Whether to accept or reject this account invitation. */
    status: "accepted" | "rejected";
}
export declare const PutMembershipRequest: Schema.Schema<PutMembershipRequest>;
export interface PutMembershipResponse {
    /** Membership identifier tag. */
    id?: string | null;
    account?: {
        id: string;
        name: string;
        type: "standard" | "enterprise";
        createdOn?: string | null;
        managedBy?: {
            parentOrgId?: string | null;
            parentOrgName?: string | null;
        } | null;
        settings?: {
            abuseContactEmail?: string | null;
            enforceTwofactor?: boolean | null;
        } | null;
    } | null;
    /** Enterprise only. Indicates whether or not API access is enabled specifically for this user on a given account. */
    apiAccessEnabled?: boolean | null;
    /** All access permissions for the user at the account. */
    permissions?: {
        analytics?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        billing?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        cachePurge?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        dns?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        dnsRecords?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        lb?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        logs?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        organization?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        ssl?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        waf?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        zoneSettings?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
        zones?: {
            read?: boolean | null;
            write?: boolean | null;
        } | null;
    } | null;
    /** Access policy for the membership */
    policies?: {
        id?: string | null;
        access?: "allow" | "deny" | null;
        permissionGroups?: {
            id: string;
            meta?: {
                key?: string | null;
                value?: string | null;
            } | null;
            name?: string | null;
        }[] | null;
        resourceGroups?: {
            id: string;
            scope: {
                key: string;
                objects: {
                    key: string;
                }[];
            }[];
            meta?: {
                key?: string | null;
                value?: string | null;
            } | null;
            name?: string | null;
        }[] | null;
    }[] | null;
    /** List of role names the membership has for this account. */
    roles?: string[] | null;
    /** Status of this membership. */
    status?: "accepted" | "pending" | "rejected" | null;
}
export declare const PutMembershipResponse: Schema.Schema<PutMembershipResponse>;
export type PutMembershipError = DefaultErrors;
export declare const putMembership: API.OperationMethod<PutMembershipRequest, PutMembershipResponse, PutMembershipError, Credentials | HttpClient.HttpClient>;
export interface DeleteMembershipRequest {
    membershipId: string;
}
export declare const DeleteMembershipRequest: Schema.Schema<DeleteMembershipRequest>;
export interface DeleteMembershipResponse {
    /** Membership identifier tag. */
    id?: string | null;
}
export declare const DeleteMembershipResponse: Schema.Schema<DeleteMembershipResponse>;
export type DeleteMembershipError = DefaultErrors;
export declare const deleteMembership: API.OperationMethod<DeleteMembershipRequest, DeleteMembershipResponse, DeleteMembershipError, Credentials | HttpClient.HttpClient>;
//# sourceMappingURL=memberships.d.ts.map