import { type AdditionalDataHolder, type BackedModel, type BaseRequestBuilder, type Duration, type Parsable, type ParseNode, type RequestConfiguration, type RequestInformation, type RequestsMetadata, type SerializationWriter } from '@microsoft/kiota-abstractions';
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns a setUserPreferredPresencePostRequestBody
 */
export declare function createSetUserPreferredPresencePostRequestBodyFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * The deserialization information for the current model
 * @returns a Record<string, (node: ParseNode) => void>
 */
export declare function deserializeIntoSetUserPreferredPresencePostRequestBody(setUserPreferredPresencePostRequestBody?: Partial<SetUserPreferredPresencePostRequestBody> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeSetUserPreferredPresencePostRequestBody(writer: SerializationWriter, setUserPreferredPresencePostRequestBody?: Partial<SetUserPreferredPresencePostRequestBody> | undefined): void;
export interface SetUserPreferredPresencePostRequestBody extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * The activity property
     */
    activity?: string;
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * The availability property
     */
    availability?: string;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean;
    /**
     * The expirationDuration property
     */
    expirationDuration?: Duration;
}
/**
 * Provides operations to call the setUserPreferredPresence method.
 */
export interface SetUserPreferredPresenceRequestBuilder extends BaseRequestBuilder<SetUserPreferredPresenceRequestBuilder> {
    /**
     * Set the preferred availability and activity status for a user. If the preferred presence of a user is set, the user's presence is the preferred presence. Preferred presence takes effect only when there is at least one presence session of the user. Otherwise, the user's presence stays as Offline. A presence session can be created as a result of a successful setPresence operation, or if the user is signed in on a Teams client.  Read more about presence sessions and their time-out and expiration.
     * @param body The request body
     * @param requestConfiguration Configuration for the request such as headers, query parameters, and middleware options.
     * @see {@link https://learn.microsoft.com/graph/api/presence-setuserpreferredpresence?view=graph-rest-1.0|Find more info here}
     */
    post(body: SetUserPreferredPresencePostRequestBody, requestConfiguration?: RequestConfiguration<object> | undefined): Promise<void>;
    /**
     * Set the preferred availability and activity status for a user. If the preferred presence of a user is set, the user's presence is the preferred presence. Preferred presence takes effect only when there is at least one presence session of the user. Otherwise, the user's presence stays as Offline. A presence session can be created as a result of a successful setPresence operation, or if the user is signed in on a Teams client.  Read more about presence sessions and their time-out and expiration.
     * @param body The request body
     * @param requestConfiguration Configuration for the request such as headers, query parameters, and middleware options.
     * @returns a RequestInformation
     */
    toPostRequestInformation(body: SetUserPreferredPresencePostRequestBody, requestConfiguration?: RequestConfiguration<object> | undefined): RequestInformation;
}
/**
 * Metadata for all the requests in the request builder.
 */
export declare const SetUserPreferredPresenceRequestBuilderRequestsMetadata: RequestsMetadata;
/**
 * Uri template for the request builder.
 */
export declare const SetUserPreferredPresenceRequestBuilderUriTemplate = "{+baseurl}/users/{user%2Did}/presence/setUserPreferredPresence";
//# sourceMappingURL=index.d.ts.map