import * as pulumi from "@pulumi/pulumi";
import * as outputs from "./types/output";
/**
 * Get groups list
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as authentik from "@pulumi/authentik";
 *
 * // To get the complete groups list
 * const all = authentik.getGroups({});
 * // Or, to filter according to a specific field
 * const admins = authentik.getGroups({
 *     isSuperuser: true,
 * });
 * ```
 */
export declare function getGroups(args?: GetGroupsArgs, opts?: pulumi.InvokeOptions): Promise<GetGroupsResult>;
/**
 * A collection of arguments for invoking getGroups.
 */
export interface GetGroupsArgs {
    attributes?: string;
    includeUsers?: boolean;
    isSuperuser?: boolean;
    membersByPks?: number[];
    membersByUsernames?: string[];
    name?: string;
    ordering?: string;
    search?: string;
}
/**
 * A collection of values returned by getGroups.
 */
export interface GetGroupsResult {
    readonly attributes?: string;
    /**
     * Generated.
     */
    readonly groups: outputs.GetGroupsGroup[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly includeUsers?: boolean;
    readonly isSuperuser?: boolean;
    readonly membersByPks?: number[];
    readonly membersByUsernames?: string[];
    readonly name?: string;
    readonly ordering?: string;
    readonly search?: string;
}
/**
 * Get groups list
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as authentik from "@pulumi/authentik";
 *
 * // To get the complete groups list
 * const all = authentik.getGroups({});
 * // Or, to filter according to a specific field
 * const admins = authentik.getGroups({
 *     isSuperuser: true,
 * });
 * ```
 */
export declare function getGroupsOutput(args?: GetGroupsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetGroupsResult>;
/**
 * A collection of arguments for invoking getGroups.
 */
export interface GetGroupsOutputArgs {
    attributes?: pulumi.Input<string>;
    includeUsers?: pulumi.Input<boolean>;
    isSuperuser?: pulumi.Input<boolean>;
    membersByPks?: pulumi.Input<pulumi.Input<number>[]>;
    membersByUsernames?: pulumi.Input<pulumi.Input<string>[]>;
    name?: pulumi.Input<string>;
    ordering?: pulumi.Input<string>;
    search?: pulumi.Input<string>;
}
